home *** CD-ROM | disk | FTP | other *** search
/ Info-Mac 3 / Info_Mac_1994-01.iso / Development / Information / Gestalt Selectors 2.2 < prev    next >
Text File  |  1993-12-08  |  104KB  |  2,422 lines

  1.  
  2. Supplemental Gestalt Selectors List 2.2
  3. =======================================
  4. First published: 12 October 1992, 13:15 CET (GMT+1)
  5. Last modified  : 8 December 1993, 21:30 CET (GMT+1)
  6.  
  7. Supplemental to the selector codes listed in the Gestalt Chapter of
  8. Inside Macintosh VI (IM VI), that is.
  9. These can include selector codes installed by Apple (system) software or by
  10. software from third parties (your software?).
  11. About IM Operating System Utilities: First it was scheduled for Winter 1992,
  12. then delayed until June and later to October 1993. Now I heard it will
  13. probably be released in May 1994. Retail price in Holland will be around $25.
  14.  
  15. This file can be best viewed with a mono-spaced font like Monaco. Because
  16. it is wrapped as setext you can use several utilities to index and read it.
  17. For the Macintosh you can use Easy View and on a UNIX system sv (setext
  18. viewer) works fine. Both are available by FTP from sumex-aim.stanford.edu,
  19. archived respectively as:
  20.      info-mac/text/easy-view-232.hqx
  21.      info-mac/text/easy-view-233-patch.hqx
  22.      info-mac/text/setext-viewer-02-unix.uu
  23.  
  24. See for more information about this list the chapters at the end.
  25.  
  26. Contents
  27. --------
  28.     Changes
  29.       Contributions
  30.       Changes Overview
  31.     Gestalt Selector Codes
  32.       Apple System Software
  33.       Apple Additional Software
  34.       Third Parties Software
  35.     Unknown Gestalt Selector Codes
  36.       Apple System Software
  37.       Apple Additional Software
  38.       Third Parties Software
  39.     Gestalt Manager Calls
  40.       Gestalt Manager Routines
  41.       Undocumented Gestalt Manager Routines
  42.       Gestalt Value Routines
  43.     Kilo-liners
  44.       Direct Gestalt Calls
  45.       Direct GestaltValue Calls
  46.       GestaltSelectorZero
  47.     Abbreviations
  48.     Sources
  49.     Miscellaneous
  50.       AppleShare File & Print Server selector codes
  51.       Glue code
  52.       Related Software
  53.     About this list
  54.       Availability
  55.       Acknowledgements
  56.     Definitions and Format
  57.       Use in Language
  58.       Definitions
  59.       Format Selector Entry
  60.       Format Version Numbers
  61.     Legal Stuff
  62.       Notice of Liability
  63.       Trademarks
  64.       Distribution
  65.     Editor's Address
  66.  
  67. Changes
  68. =======
  69. All contributions and changes to the list since version 2.1 are listed
  70. in this chapter.
  71.  
  72. Contributions
  73. -------------
  74.  
  75. The following persons contributed to this version:
  76.  
  77. _Person:              Software:               Selector(s) added/changed:    _
  78. Anonymous            System (enabler)        drag, dplv, dply, fnd&, fndc,
  79.                                              fndn, heap, intd, mach, os  ,
  80.                                              teat
  81. J.D.S. Babcock/Rene Ros
  82.                      System (enabler)        mach
  83. Mark Dawson          System (enabler)        mach
  84. Lawrence D'Oliveiro  AppleScript ext         evnt
  85. Michael Hecht        AppleScript ext         evnt
  86.                      System (enabler)        mach
  87. Roland Mansson       AppleShare Server?      afps
  88.                      System (Q840AV)         aint, os  , vers
  89.                      System (enabler)        mach
  90.                      unknown                 LxRZ
  91. Kees Pols/Rene Ros   PlainTalk package       fdbk, lstk, ptlk
  92. Rene Ros             Arashi app              ASHI, SAVR
  93.                      RapidTrack cp           AP05
  94.                      Responder ext           wma.
  95.                      System (enabler)        batt, ctxm, intd, mach
  96.                      Xmas Lights             TgrX
  97. Rodrigo Torres       After Dark cp           ADfd, ADrk, SAVC, SAVR
  98.  
  99. There is now an official mailing list to send updates around and receive
  100. your contributions. And perhaps for discussions regarding Gestalt.
  101. Some parts of the list have been changed to include guidelines on how to
  102. use the mailing-list.
  103. Contributions can be send to:
  104.     gestalt-selectors-list@bio.vu.nl
  105. To subscribe/unsubscribe send an email with that command in the subject line
  106. to the normal email address:
  107.     gestalt-selectors-list-request@bio.vu.nl
  108. The mail archive is reachable at:
  109.     gestalt-selectors-list-request@bio.vu.nl
  110. You can get the abstracte file by using this command in the subject line:
  111.     get ABSTRACTS
  112.  
  113. Mark Dawson, Michael Hecht and Roland Mansson provided the machine types of
  114. the new Macs. Everyone of them had a piece of the puzzle.
  115. I also received a Gestalt! file about a new PowerPC prototype with machine
  116. type 100. The data suggests it emulates a M68020 CPU and has a PPC601.
  117. Thanks to the anonymous contributor.
  118.  
  119. Rodrigo Torres (Macintosh Tech Support, Berkeley Systems) provided the
  120. AfterDarkGestalt.h file listing all selectors installed by After Dark.
  121. Including the SAVC and SAVR selectors for controling screen savers,
  122. which is becoming a standard for different screen savers.
  123. The file is available at the archive mailer as src/AfterDarkGestalt.h
  124.  
  125. I had made an typo with the bit number when an additional bit was reported
  126. for the gestaltAppleEventsAttr selector. This error stayed around until
  127. the correct info appeared. And even then I thought it was correct until
  128. Lawrence D'Oliveiro said he'd never seen bit 2 set. A look into the
  129. contributions archive revealed my error. Changed!
  130.  
  131. The gestaltMachineType entry has changed a bit. It now includes unreleased
  132. machines as well, although with most of them the return value is still a
  133. mystery.
  134.  
  135. Changes Overview
  136. ----------------
  137. Added selectors
  138.   Apple System  : 
  139.   Apple Add.    : drag, teat
  140.   Third Parties : ASHI
  141. Added unknown
  142.   Apple System  : ctxm, dplv, dply, fnd&, fndc, fndn, heap
  143.   Apple Add.    : afps, fdbk, lstk, ptlk
  144.   Third Parties : AP05, SDIT, TgrX, WARE
  145. Changed selectors
  146.   Apple System  : evnt, mach, os  , wma.
  147.   Apple Add.    : 
  148.   Third Parties : 
  149. Changed unknown
  150.   Apple System  : aint, batt
  151.   Apple Add.    : 
  152.   Third Parties : LxRZ
  153. Previously unknown
  154.   Apple System  : intd
  155.   Apple Add.    : 
  156.   Third Parties : ADfd, ADrk, SAVC, SAVR
  157. Includes updates 2.1.1 thru 2.1.5, send to subscribers of the distribution
  158. list.
  159.  
  160. Gestalt Selector Codes
  161. ======================
  162. The following sections list selector codes of which the meaning is know.
  163.  
  164. Apple System Software
  165. ---------------------
  166. alis (System [7.0])
  167.      gestaltAliasMgrAttr (addition by Remote AppleTalk Aliases)
  168.  
  169.      gestaltAliasMgrSupportsRemoteAppletalk = 1; 
  170.                                              {supports Remote Appletalk} *9
  171.      See also remarks with 'qtim' selector.
  172. atkv (System [7.0, AppleTalk 56])
  173.      gestaltATalkVersion *4 (not listed)
  174.      Returns AppleTalk version as NumVersion.
  175.  
  176.      This is different from 'atlk' !
  177.      With the release of the System 7 Tuner product, AppleTalk will not be
  178.      loaded at startup, if prior to the previous shutdown AppleTalk was
  179.      turned off in the Chooser. Under this circumstance, the 'atkv'
  180.      selector is not available. If the 'atkv' selector is not available
  181.      under System 7, this is an indicator that AppleTalk cannot be turned
  182.      on without doing so in the Chooser and rebooting the system. *4
  183.  
  184.      gestaltATalkVersion = 'atkv'; *3/5
  185. atlk (System [6.0.4])
  186.      gestaltAppleTalkVersion (addition)
  187.      Returns the version of the .MPP driver as INTEGER.
  188.  
  189.      LAPMgrExists := (AppleTalkVersion >= 53); *4
  190. cash (System [???]) *10
  191.      gestaltRAMCacheSize (not listed)
  192.      Returns byte-size of physical RAM allocated to Disk Cache.
  193.      0 = Disk Cache Off
  194.  
  195.      gestaltRAMCacheSize = 'cash';
  196.  
  197.      NOTE:
  198.      Is listed in THINK Reference 1.0 but it is unknown which System
  199.      Software version should install it.
  200. conn (System [7.0], Communications Toolbox installed)
  201.      gestaltConnMgrAttr (addition)
  202.      With System 6, this Gestalt selector isn't implemented when the
  203.      Communications Toolbox is installed (Michael Hecht).
  204.  
  205.      gestaltConnMgrErrorString  = 2; {has CMGetErrorString} *11
  206.      gestaltConnMgrMultiAsyncIO = 3; {CMNewsIOPB,CMDisposeIOPB,} *11
  207.                                      {CMPBRead,CMPBWrite,CMPBIOKill}
  208. cpnt (System [7.1])
  209.      (Color Picker Extension ext [2.0]))
  210.      (QuickTime ext [1.0])
  211.      (Sound Manager ext [3.0]?)
  212.      (Speech Manager ext [1.1.1])
  213.      gestaltComponentMgr (not listed)
  214.      Returns Component Manager version as INTEGER.
  215.  
  216.      gestaltComponentMgr = 'cpnt'; *6
  217. cput (System? [???]) *20
  218.      gestaltNativeCPUtype (not listed)
  219.  
  220.      gestaltCPU68000 = 1;
  221.      gestaltCPU68010 = 2;
  222.      gestaltCPU68020 = 3;
  223.      gestaltCPU68030 = 4;
  224.      gestaltCPU68040 = 5;
  225.      gestaltCPU601   = 1;
  226.  
  227.      NOTE:
  228.      This selector should probably be used together with the
  229.      gestaltSysArchitecture ('sysa') selector. When the gestalt68k bit is
  230.      set the MC 680x0 CPUs are returned, and if the gestaltPowerPC bit is
  231.      set the PowerPC CPUs are returned. Meanwhile the gestaltProcessorType
  232.      ('proc') probably returns the CPU which is emulated when on a PowerPC.
  233.      Nothing of this is confirmed anywhere but it sounds logical.
  234.  
  235.      This selector is installed on a Centris 660AV.
  236.      (Rene Ros)
  237. crm  (System [7.0], Communications Toolbox Installed)
  238.      gestaltCRMAttr (additions)
  239.  
  240.      gestaltCRMPersistentFix = 1; {fix for persistent tools} *11
  241.      gestaltCRMToolRsrcCalls = 2; {has CRMGetToolResource/} *11
  242.                                   {ReleaseToolResource}
  243. ctbm (System [7.0], Communications Toolbox installed)
  244.      gestaltCTBManagersAttr (not listed)
  245.      Returns information about the Communications Toolbox Managers, it is a
  246.      bitmask of which managers are present.
  247.  
  248.      gestaltCTBManagersAttr = 'ctbm'; *7
  249. ctbu (System [7.0], Communications Toolbox installed)
  250.      gestaltCTBUtilsAttr (not listed)
  251.      Returns information about the Communications Toolbox Utilities.
  252.  
  253.      gestaltCTBUtilsAttr    = 'ctbu'; *7
  254.      gestaltCTBUtilsPresent = 0;      *7
  255. ctbv (System [7.0], Communications Toolbox Installed)
  256.      gestaltCTBVersion (addition)
  257.  
  258.      This selector is also installed by the Communications Toolbox for
  259.      System 6 (version 6.0.4 and higher).
  260.      See for details IM VI.
  261. dict (System [7.1])
  262.      gestaltDictionaryMgrAttr (not listed)
  263.      Returns information about the Dictionary Manager.
  264.  
  265.      gestaltDictionaryMgrAttr    = 'dict';
  266.      gestaltDictionaryMgrPresent = 0;
  267. easy (Easy Access cp [7.0?]) *20
  268.      gestaltEasyAccessAttr (replacement?)
  269.  
  270.      gestaltEasyAccessAttr = 'easy';
  271.      gestaltEasyAccessOff  = 0;      {Easy Access present but off}
  272.      gestaltEasyAccessOn   = 1;      {Easy Access on}
  273. eajt (Easy Access cp [7.0])
  274.      gestaltEasyAccessJTable (not listed)
  275.      Returns the base address of the Easy Access jump-trap table.
  276.  
  277.      gestaltEasyAccessJTable = 'eajt'; *3
  278. edtn (System [7.0])
  279.      gestaltEditionMgrAttr (addition by Easy Open)
  280.  
  281.      gestaltEditionMgrTranslationAware = 1; *12
  282. evnt (System [7.0])
  283.      (Apple Event Mgr [1.0.1] installed by AppleScript ext [1.0])
  284.      gestaltAppleEventsAttr (addition)
  285.  
  286.      gestaltAppleEvents101Present = 1; {Apple Event Mgr 1.0.1 present}
  287. flag (Network Extension ext [System 7.0 *4])
  288.      gestaltFlagshipAttr (not listed)
  289.      Returns information about the Flagship.
  290.  
  291.      gestaltFlagshipAttr       = 'flag'; *3
  292.      gestaltFlagshipPresent    = 0;      *3
  293.      gestaltFlagshipRegistered = 1;      *3
  294. fndr (Finder [7.1.1b1?]) *20
  295.      gestaltFinderAttr (not listed)
  296.  
  297.      gestaltFinderAttr               = 'fndr';
  298.      gestaltFinderDropEvent          = 0;
  299.      gestaltFinderMagicPlacement     = 1;
  300.      gestaltFinderCallsAEProcess     = 2;
  301.      gestaltOSLCompliantFinder       = 3;
  302.      gestaltFinderSupports4GBVolumes = 4;
  303.      gestaltFinderHandlesCFMFailures = 5;
  304. font (System [7.0])
  305.      (TrueType INIT ext for System 6)
  306.      gestaltFontMgrAttr (addition)
  307.  
  308.      gestalt???              = 1; {set with System 7.1}
  309.      gestaltDiskCachedFonts? = 2; {Disk Cached Fonts available?}
  310.  
  311.      NOTE:
  312.      Inside the Inline Extension 1.0 with KanjiTalk7, which was compiled
  313.      with full subroutine names, there is a subroutine called
  314.      'DiskChachedFontsAvailable' in an INIT resource which checks bit 2
  315.      of the gestaltFontMgrAttr selector response. (Marco Piovanelli)
  316. fpu  (System [6.0.4])
  317.      gestaltFPUType (addition)
  318.  
  319.      gestalt68040FPU = 3; *2
  320. fs   (System [7.0])
  321.      gestaltFSAttr (addition)
  322.  
  323.      gestaltHasFileSystemManager = 2; *2
  324.  
  325.      NOTE:
  326.      File System Manager (version 1.0a3 according to the INIT resource
  327.      name) is installed by the 720K Floppy Disk Formatter, part of the
  328.      Hardware System Update 2.0 and later.
  329. fxfr (System [7.0])
  330.      gestaltFXfrMgrAttr (additions)
  331.  
  332.      gestaltFXfrMgrMultiFile   = 1; {supports FTSend and FTReceive} *11
  333.      gestaltFXfrMgrErrorString = 2; {supports FTGetErrorString} *7/11
  334. gval (GestaltValue Glue code)
  335.      gestaltValueAddr?
  336.      The first time you call NewGestaltValue, the library installs two non-
  337.      relocatable blocks in the system heap and the gestalt selector. One of
  338.      the blocks is filled with code: it's actually a gestalt function that
  339.      implements GestaltValue's shared mechanism. The second block contains
  340.      the selectors and values GestaltValue manages. The response returned
  341.      by the 'gval' selector is a pointer to the second non-relocatable
  342.      block in the system heap. (Marco Piovanelli)
  343. hdwr (System [6.0.4])
  344.      gestaltHardwareAttr (additions)
  345.  
  346.      gestaltHasRBV          =  2; {RBV}                            *3
  347.      gestaltHasOSS          =  5; {OSS}                            *3
  348.      gestaltHasSCSIDMA      =  6; {53C80 SCSI DMA}                 *3
  349.      gestaltHasSWIMIOP      =  8; {SWIM IOP}                       *3
  350.      gestaltHasSCCIOP       =  9; {SCC IOP}                        *3
  351.      gestaltHasFitch        = 10; {Fitch memory Controller}        *8
  352.      gestaltHasIWM          = 11; {IWM}                            *3
  353.      gestaltHasPWM          = 12; {PWM disk speed buffer}          *8
  354.      gestaltHasRAMSndBuff   = 13; {RAM-based sound buffer}         *8
  355.      gestaltHasVideoDAConv  = 14; {Video D/A Converter}            *8
  356.      gestaltHasPGC          = 15; {PGC (parity control)}           *8
  357.      gestalt???             = 16; {unknown, found in Speech Mgr ext}
  358.      gestalt???             = 17; {unknown, found in Speech Mgr ext}
  359.      gestalt???             = 18; {unknown, found in Speech Mgr ext}
  360.      gestaltHasSoftPowerOff = 19; {Software PowerOff (since 7.0?)} *2
  361.      gestaltHasSonic        = 20; {Sonic}                          *3
  362.      gestaltHasSCSI961      = 21; {Int. 53C96 SCSI}                *1
  363.      gestaltHasSCSI962      = 22; {Ext. 53C96 SCSI}                *1
  364.      gestaltHasDAFBVideo    = 23; {DAFB Video}                     *3
  365.      gestaltHasUniversalROM = 24; {Universal ROM}                  *17
  366.      gestaltHas???          = 27; {set on PowerPC prototype and C660AV,
  367.                                    DSP?, AWAC?}
  368.      gestaltHas???          = 30; {set on C660AV, DSP?}
  369.      See for more information the TN "M.OV.GestaltSysenvirons" (OV 16).
  370. help (System [7.0])
  371.      gestaltHelpMgrAttr (addition)
  372.  
  373.      gestaltHelpMgrExtensions = 1; {help mgr extensions are installed} *19
  374. icon (System? [???])
  375.      gestaltIconUtilities (not listed)
  376.  
  377.      gestaltIconUtilities        = 'icon';
  378.      gestaltIconUtilitiesPresent = 0;
  379. intd (Powerbook Duo Enabler [1.0])
  380.      (System Enabler 111 [1.0])
  381.      (System Enabler 121 [1.0])
  382.      (System Enabler 131 [1.0])
  383.      (System Enabler 201 [1.0]))
  384.      gestaltInternalDiskAttr?
  385.      Returns information about the internal harddisk of PowerBook
  386.      computers.
  387.  
  388.      gestaltInternalDiskAttr? = 'intd'; {PB Internal HD attributes}
  389.      gestaltHasInternalDisk?  =  0;     {TRUE if machine has internal HD}
  390.      gestaltDiskSpinning?     =  1;     {TRUE if internal HD is spon up}
  391.      gestalt???               = 24;     {unknown, set on PB180}
  392. kbd  (System [6.0.4])
  393.      gestaltKeyboardType (additions)
  394.  
  395.      gestaltPwrBookADBKbd     = 12; {PowerBook ADB Keyboard}       *1
  396.      gestaltPwrBookISOADBKbd  = 13; {PowerBook ISO ADB Keyboard}   *1
  397.      gestaltAppleAdjustKeypad = 14, {Adjustable Keypad?}           *20
  398.      gestaltAppleAdjustADBKbd = 15, {Adjustable ADB Keyboard?}     *20
  399.      gestaltAppleAdjustISOKbd = 16, {Adjustable ISO ADB Keyboard?} *20
  400.  
  401.      Combinations of System Global KbdType and gestaltKeyboardType values
  402.      ======================================================================
  403.      KbdType    gestaltKeyboardType          KbdType    gestaltKeyboardType
  404.      (hex.)     (decimal)                    (hex.)     (decimal)
  405.      ----------------------------------------------------------------------
  406.        $03          1                          $0F         18
  407.        $13          2                          $12         19
  408.        $0B          3                          $13         20
  409.        $02          4                          $14         21
  410.        $01          5                          $15         22
  411.        $06          6                          $16         23
  412.        $07          7                          $17         24
  413.        $04          8                          $18         25
  414.        $05          9                          $19         26
  415.        $08         10                          $1A         27
  416.        $09         11                          $1B         28
  417.        $0C         12                          $1C         29
  418.        $0D         13                          $1D         30
  419.        $0E         14                          $1E         31
  420.        $10         15                          $1F         32
  421.        $11         16                          $20         33
  422.        $0A         17
  423.      ======================================================================
  424.      (Source: from the PTCH 5 resource in the Hardware System Update 2.0
  425.               extension.)
  426.  
  427.      NOTE:
  428.      The Apple Adjustable Keyboard doesn't have its own gestalt keyboard
  429.      type defined with the currently available System Software. It changes
  430.      a low memory global but this doesn't change the Gestalt response.
  431.      Because of this programs which follow Apple's rules to determine the
  432.      keyboard type by using the Gestalt Mgr may not function properly.
  433.      This problem is corrected by the Hardware System Update 2.0 and later.
  434. mach (System [6.0.4]) INF
  435.      gestaltMachineType (additions)
  436.  
  437.      RELEASED
  438.      gestaltQuadra900          =  20; {Macintosh Quadra 900}     *1
  439.      gestaltPowerBook170       =  21; {Macintosh PowerBook 170}  *1
  440.      gestaltQuadra700          =  22; {Macintosh Quadra 700}     *1
  441.      gestaltClassicII          =  23; {Macintosh Classic II}     *1
  442.      gestaltPowerBook100       =  24; {Macintosh PowerBook 100}  *1
  443.      gestaltPowerBook140       =  25; {Macintosh PowerBook 140}  *1
  444.      gestaltQuadra950          =  26; {Macintosh Quadra 950}     *1
  445.      gestaltMacLCIII           =  27; {Macintosh LC III}
  446.      gestaltPowerBook210       =  29; {Macintosh PowerBook 210}
  447.      gestaltMacCentris650      =  30; {Macintosh Centris 650}
  448.      gestaltPowerBook230       =  32; {Macintosh PowerBook 230}
  449.      gestaltPowerBook180       =  33; {Macintosh PowerBook 180}
  450.      gestaltPowerBook160       =  34; {Macintosh PowerBook 160}
  451.      gestaltMacQuadra800       =  35; {Macintosh Quadra 800}
  452.      gestaltMacQuadra650?      =  36; {Macintosh Quadra 650}
  453.      gestaltMacLCII            =  37; {Macintosh LC II}
  454.      gestaltMacPowerBookDuo250 =  38; {Macintosh PowerBook Duo 250}
  455.      gestaltMacIIvi            =  44; {Macintosh IIvi}
  456.      gestaltPerforma600        =  45; {Macintosh Performa 600}
  457.      gestaltMacIIvx            =  48; {Macintosh IIvx}
  458.      gestaltMacColorClassic    =  49; {Macintosh Color Classic}
  459.      gestaltPowerBook165c      =  50; {Macintosh PowerBook 165c}
  460.      gestaltMacCentris610      =  52; {Macintosh Centris 610}
  461.      gestaltMacQuadra610?      =  53; {Macintosh Quadra 610}
  462.      gestaltPowerBook145       =  54; {Macintosh PowerBook 145 & 145b}
  463.                                       {145B has few differences with 145}
  464.      gestaltMacLC520           =  56; {Macintosh LC 520}
  465.      gestaltMacCentris660AV    =  60; {Macintosh Centris 660AV}
  466.      gestaltPerforma460        =  62; {Macintosh Performa 460}
  467.      gestaltPowerBook180c      =  71; {Macintosh PowerBook 180c}
  468.      gestaltMacPowerBookDuo270?=  77; {Macintosh PowerBook Duo 270}
  469.      gestaltMacQuadra840AV     =  78; {Macintosh Quadra 840AV}
  470.      gestaltPerforma550        =  80; {Macintosh Performa 550}
  471.      gestaltPowerBook165?      =  84; {Macintosh PowerBook 165}
  472.      gestaltMacintoshTV        =  88; {Macintosh TV}
  473.      gestaltMacLC475           =  89; {Macintosh LC 475}
  474.      gestaltMacQuadra605?      =  94; {Macintosh Quadra 605}
  475.  
  476.      Exceptions with systems prior to System 7.1:
  477.      gestaltMacLCII            =  19; {Macintosh LC & LC II}
  478.                                       {LC has MC68020, LC II has MC68030}
  479.      gestaltPowerBook145       =  25; {Macintosh PowerBook 140 & 145}
  480.                                       {processor speed is only difference}
  481.                                       {use GetCPUSpeed from Power Mgr?}
  482.  
  483.      Released unknown
  484.      All other released macs and not listed here! I can't keep up with
  485.      the new releases... Can you?
  486.  
  487.      Equivalents
  488.      Color Classic II          = gestaltMacColorClassic? (sold in Japan?)
  489.      Performa 200              = gestaltClassicII
  490.      Performa 400              = gestaltMacLCII
  491.      Performa 405              = gestaltMacLCII
  492.      Performa 410              = gestaltMacLCII
  493.      Performa 430              = gestaltMacLCII
  494.      Performa 450              = gestaltMacLCIII
  495.      Performa 466              = gestaltMacLCIII
  496.      Performa 467              = gestaltMacLCIII
  497.      Performa 475              = gestaltMacLC475
  498.      Performa 476              = gestaltMacLC475
  499.      Performa 600              = gestaltMacIIvx
  500.      Performa 600CD            = gestaltMacIIvx
  501.      Quadra 660AV              = gestaltMacCentris660AV
  502.      Workgroup Server 60       = gestaltMacCentris610
  503.      Workgroup Server 80       = gestaltMacQuadra800
  504.      Workgroup Server 95       = gestaltQuadra950
  505.  
  506.  
  507.      UNRELEASED
  508.      gestalt???                = ???; {unknown, codename Pomona?}
  509.      gestalt???                = ???; {unknown, codename BlackBird?}
  510.      gestalt???                = ???; {unknown, two PowerBook Duo}
  511.      gestalt???                = ???; {unknown, PowerPC 603 PB Duo}
  512.      gestalt???                =  43; {unknown, pre-rel. Tempest/Cyclone}
  513.      gestalt???                =  75; {PowerPC prototype}
  514.      gestaltMacLC476?          = ???; {Macintosh LC 476}
  515.      gestaltPowerBook270C?     = ???; {Macintosh PowerBook 270c}
  516.      gestaltQuadra6100?        = ???; {Macintosh Quadra 6100}
  517.      gestaltQuadra6500?        = ???; {Macintosh Quadra 6500}
  518.      gestaltQuadra8500?        = ???; {Macintosh Quadra 8500}
  519.      gestaltPPC601?            = ???; {PowerPC? 601? value 75?}
  520.      gestaltPPC604?            = ???; {PowerPC? 604? value 100?}
  521.      gestaltPPC???             = 100; {PowerPC? ???}
  522.                                       {MachineNameStr: "PDM xxxx 66"}
  523.                                       {to protect the anonymous contributor}
  524.                                       {form being identified the part we}
  525.                                       {don't know the meaning of is replaced}
  526.                                       {by xxxx. PDM is the PPC codename}
  527.  
  528.      Equivalents
  529.      Performa 550              = gestaltMacLC520?
  530.      PPC Workgroup Server 60   = gestaltQuadra6100?
  531.      PPC Workgroup Server 80   = gestaltQuadra6500?
  532.      PPC Workgroup Server 95   = gestaltQuadra8500?
  533.  
  534.      NOTES:
  535.      The Performa 600 was originally planned to ship as Macintosh IIvm
  536.      but the name was changed because users thought 'vm' meant 'Virtual
  537.      Memory'. Some system enablers (001, 040, 065 & 201) still contain
  538.      this original name.
  539.  
  540.      The Developer Notes (available on ftp.apple.com and on the Developer
  541.      CD-ROM Series, amongst others) about Macintosh models provide in
  542.      several cases wrong or incomplete information regarding the machine
  543.      type returned by the Gestalt Manager.
  544.  
  545.      On Macintosh Performas, the Machine Name STR# resource will always
  546.      return the string "Macintosh" (not "Macintosh Performa 450" or
  547.      "Performa 450").  On all other Macintoshes, the string will return
  548.      the correct name. (Mark Dawson)
  549.  
  550.      All system enablers have a STR# resource -16395 (kMachineNameStrID)
  551.      included to replace the one in the System file. In most cases this
  552.      resource lists the same Macintosh names as the original one in
  553.      System 7.1 and adds the names of the machines the enabler is used for.
  554.      Therefore, if you want to display all Macintosh names you can't
  555.      rely on this resource anymore. (Rene Ros)
  556.      
  557.      (Main source equivalents and unreleased machines:
  558.       MacFacts Two by J.D.S. Babcock, used with permission)
  559. micn (System [6.0.4]) INF
  560.      gestaltMachineIcon (addition)
  561.  
  562.      NOTE:
  563.      The icon resource ID returned is based on the gestaltMachineType
  564.      response which is used as an index into a table. This table of
  565.      resource IDs differs with most System Software versions (and
  566.      enablers). If you really want to know the icon resource ID of a
  567.      machine which is not the current machine you have the following
  568.      options:
  569.      - Write a GDEF to replace the 'mach' selector, let this GDEF return
  570.        the original gestaltMachineType unless a certain selector exists.
  571.        Create this selector with the GestaltValue code and make it loop
  572.        from 1 to the number of items in the STR# kMachineNameStrID
  573.        resource, let the custom GDEF return this as the machine type so
  574.        the gestaltMachineIcon selector will use this to look up the icon
  575.        resource ID. Then remove the GestaltValue selector and restore the
  576.        original gestaltMachineType selector.
  577.      - Get the entrypoint of the gestaltMachineIcon GDEF, jump into the
  578.        GDEF a few bytes further (and thus skipping the gestalt call using
  579.        the gestaltMachineType selector), emulate a genuine call to Gestalt
  580.        by setting the A0 (response, the machineType you want) and
  581.        D0 (result) registers correct.
  582.      - Determine the start of the table, which is located in memory before
  583.        the entrypoint of the gestaltMachineIcon GDEF code, and calculate
  584.        the offset to the icon resource ID you need. If you want code which
  585.        does this, you can contact me (Rene Ros) an I will sent you some
  586.        Pascal source code.
  587.      (David Greenspon, Michael Hecht and Rene Ros)
  588. misc (System [6.0.5])
  589.      gestaltMiscAttr (addition)
  590.  
  591.      gestaltBootGlobals = 1; {Boot Globals} *8
  592. mmu  (System [6.0.4])
  593.      gestaltMMUType (addition)
  594.  
  595.      gestalt68040MMU = 4; {68040/68LC040 built-in} *2
  596.      gestalt???      = 5; {PowerPC prototypes MMU}
  597. nubs (System [6.0.4, 6.0.5, 6.0.7, discontinued])
  598.      gestaltNuBusSlotCount (not listed)
  599.      Returns count of NuBus slots.
  600.  
  601.      gestaltNuBusSlotCount = 'nubs';
  602. os   (System [6.0.4, 7.0 and higher])
  603.      gestaltOSAttr (addition)
  604.  
  605.      gestalt???                  =  9; {set on PowerPC prototype and Q840AV}
  606.      gestaltBgndMouseDownSupport = 10; *20
  607.      gestalt???                  = 11; {set on PowerPC prototype (ID#100)}
  608. osyv (sysvINIT by T. Tanaka, Apple Computer Japan Inc.) INF
  609.      Because of a bug with KanjiTalk 6.0.7 this extension (snippet code,
  610.      available on Developer CD-ROM Series) replaces the standard 'sysv'
  611.      Gestalt Definition (GDEF) with a corrected one to return $0x0607 and
  612.      installs the 'osyv' selector which uses the replaced GDEF. *13
  613. pcxg (System? [???]) *20
  614.      gestaltPCXAttr (not listed)
  615.  
  616.      gestaltPCXAttr            = 'pcxg';
  617.      gestaltPCXHas8and16BitFAT = 0;
  618.      gestaltPCXHasProDOS       = 1;
  619. ppc  (System [7.0])
  620.      gestaltPPCToolboxAttr (addition)
  621.      The first thing that is confusing is that, unlike other selectors
  622.      returning attributes, the responses are not bit values, but bit masks.
  623.      This means you simply AND the value with the response to test the bit.
  624.      The second thing that is confusing is how to interpret
  625.           gestaltPPCToolboxPresent = $0x0000.
  626.      What this means is that if the PPC toolbox is present, but has not
  627.      been initialised (by calling PPCInit), then gestaltPPCToolboxAttr
  628.      returns $0x0000. In reality, PPCInit gets called by the Process
  629.      Manager before any applications get launched, so no applications will
  630.      actually see this response. (Dave Radcliff)
  631.  
  632.      gestaltPPCToolboxAttr      = 'ppc ';
  633.      gestaltPPCToolboxPresent   = $0x0000; {Requires PPCInit to be called}
  634.      gestaltPPCSupportsIncoming = $0x0001; {Deny incoming net requests}
  635.      gestaltPPCSupportsOutGoing = $0x0002; {Deny outgoing net requests}
  636.      gestaltPPCSupportsRealTime = $0x1000; {Supports real-time delivery}
  637. proc (System [6.0.4])
  638.      gestaltProcessorType (addition)
  639.  
  640.      gestalt68040   = 5; *2
  641.  
  642.      NOTE:
  643.      The 68LC040 responds as type gestalt68040 but doesn't has a FPU. The
  644.      user can swap out the 68LC040 and put in a real 68040 with FPU, so
  645.      just checking the machineType or the processorType isn't enough.
  646.      (Dave Radcliff)
  647. qd   (System [6.0.4])
  648.      gestaltQuickDrawVersion (addition)
  649.  
  650.      Possible Combinations of ROM Versions and System Software Versions
  651.      ======================================================================
  652.      ROM Class             System Version         Gestalt Value
  653.      ----------------------------------------------------------------------
  654.      Black-and-white class <  7.0                 gestaltOriginalQD
  655.      (ROM < 256K)          >= 7.0                 gestaltOriginalQD and
  656.                                               gestaltSystemVersion >= $0700
  657.  
  658.      Color QD class        <  7.0, no INITs       gestalt8BitQD
  659.      (ROM = 256K)          6.0.3/6.0.4 and        gestalt32BitQD
  660.                            32-Bit QD INIT 1.0
  661.                            6.0.5-6.0.8 and        gestalt32BitQD12
  662.                            32-Bit QD INIT 1.2
  663.                            >= 7.0                 gestalt32BitQD13
  664.  
  665.      ci class              6.0.4                  gestalt32BitQD + 1
  666.      (ROM > 256K)          6.0.5-6.0.8            gestalt32BitQD12
  667.                            >= 7.0                 gestalt32BitQD13
  668.      ======================================================================
  669.      (Source: Develop Issue 14, June 1993)
  670.  
  671.      NOTE:
  672.      gestalt32BitQD11 is never returned and gestalt32BitQD + 1 means
  673.      $0x0201 as respone value and doesn't have a constant defined.
  674. qdrw (System [7.0])
  675.      gestaltQuickDrawFeaturesAttr (not listed)
  676.  
  677.      gestaltQuickDrawFeaturesAttr = 'qdrw'; *2
  678.      gestaltHasColor              = 0;      *2
  679.      gestaltHasDeepGWorlds        = 1;      *2
  680.      gestaltHasDirectPixMaps      = 2;      *2
  681.      gestaltHasGrayishTextOr      = 3;      *2
  682.  
  683.      NOTE:
  684.      There is a bug in the 'qdrw' selector that causes it to report that
  685.      Color QuickDraw is always present, even on machines that don't support
  686.      it. Apple has acknowledged this bug on AppleLink. (Chris Wysocki)
  687.      Use SysEnvirons instead or try this:
  688.        long qdVersion = 0;
  689.        gHasColorQuickDraw = (Gestalt(gestaltQuickdrawVersion,&qdVersion)
  690.                              == noErr) && (qdVersion >= gestalt8BitQD);
  691. rbv  (System [6.0.4, discontinued?]) *20
  692.      gestaltRBVAddr (not listed)
  693.  
  694.      gestaltRBVAddr = 'rbv ';
  695. rtmr (System? [???])
  696.      gestaltRealtimeMgrAttr (not listed)
  697.      Returns information about the Realtime Manager.
  698.  
  699.      gestaltRealtimeMgrAttr    = 'rtmr';
  700.      gestaltRealtimeMgrPresent = 0;
  701. rsrc (System [should work since 7.0?])
  702.      gestaltResourceMgrAttr (addition)
  703.  
  704.      gestalt??? = 1; {unknown}
  705.  
  706.      NOTE:
  707.      Under System 7, bit 0 that tells if you have partial resource support
  708.      doesn't work right. The selector is undefined under System 7.0 and
  709.      7.0.1 even though the partial resource calls are available. This has
  710.      been acknowledged by Apple.
  711.      (Michael Hecht, Quinn)
  712. sccr (System [6.0.4, discontinued]) *20
  713.      gestaltSCCReadAddr (not listed)
  714.      Returns the address of SCC read ports.
  715.  
  716.      gestaltSCCReadAddr = 'sccr';
  717. sccw (System [6.0.4, discontinued]) *20
  718.      gestaltSCCWriteAddr (not listed)
  719.      Returns the address of SCC write ports.
  720.  
  721.      gestaltSCCWriteAddr = 'sccw';
  722. scri (System [6.0.4])
  723.      gestaltScriptMgrVersion (addition)
  724.  
  725.      Version numbers for the Script Manager
  726.      ======================================================================
  727.      System Version       Script Mgr           Script Mgr          Version
  728.                           (older ROMs)+        (newer ROMs)        format
  729.      ----------------------------------------------------------------------
  730.      6.0.3 and earlier    <= $20F              N.A.                binary
  731.      6.0.4 Roman          $211                 $215                  "
  732.      6.0.4 non-Roman      $212                 $216                  "
  733.      6.0.5                $213                 $217 (=2.23)          "
  734.  
  735.      6.0.7                $230                 $231                BCD
  736.      J-6.0.7.1            $230                 $231                 "
  737.      6.0.8                $230                 $231                 "
  738.      6.1 non-Roman        $240                 $241                 "
  739.      7.0                  $700                 $700                 "
  740.      7.0.1 Roman          $701                 $701                 "
  741.      7.0.1 non-Roman      $701                 $701                 "
  742.      7.1                  $710                 $710                 "
  743.      
  744.      + Plus,SE,II,IIx,IIcx,SE/30,Classic
  745.      ======================================================================
  746.      (Source: Inside Macintosh Text)
  747.  
  748. slot (System [6.0.4, 6.0.5, discontinued])
  749.      gestaltSlotAttr (not listed)
  750.      Returns information about the Slot Manager.
  751.  
  752.      gestaltSlotAttr            = 'slot';
  753.      gestaltSlotMgrExists       = 0;
  754.      gestaltNuBusPresent        = 1;
  755.      gestaltSESlotPresent       = 2;
  756.      gestaltSE30SlotPresent     = 3;
  757.      gestaltPortableSlotPresent = 4;
  758. slt1 (System [6.0.4, 6.0.5, discontinued])
  759.      gestaltFirstSlotNumber (not listed)
  760.      Returns first slot number.
  761.  
  762.      gestaltFirstSlotNumber = 'slt1';
  763. sltc (System [6.0.8?])
  764.      gestaltNuBusConnectors (addition)
  765.  
  766.      NOTE:
  767.      This selector does not return information about the Macintosh IIsi
  768.      slot.
  769. snd  (System [6.0.4])
  770.      gestaltSoundAttr (additions)
  771.  
  772.      gestaltSoundReserved       =  2;
  773.      gestaltPlayAndRecord       =  6; {built-in hardware can play and}
  774.                                       {record simultaneously} *19/20
  775.      gestalt16BitSoundIO        =  7; *20
  776.      gestaltStereoInput         =  8; *20
  777.      gestaltLineLevelInput      =  9; *20
  778.      gestaltSndPlayDoubleBuffer = 10; *20
  779.      gestaltMultiChannels       = 11; {multiple channel support} *19/20
  780.      gestalt16BitAudioSupport   = 12; *20
  781. stdf (System [7.0])
  782.      gestaltStandardFileAttr (additions by Easy Open)
  783.  
  784.      gestaltStandardFileTranslationAware = 1; *12/20
  785.      gestaltStandardFileColorIcons       = 2; *12/20
  786. sysa (System [7.1 on PowerPC prototype?]) *20
  787.      gestaltSysArchitecture (not listed)
  788.  
  789.      gestaltSysArchitecture = 'sysa';
  790.      gestalt68k             = 1;
  791.      gestaltPowerPC         = 2;
  792. sysv (System [6.0.4]) INF
  793.      gestaltSystemVersion (listed in IM VI; question)
  794.      Returns the version number of currently active System file in BCD.
  795.      Is it correct system 6.0.8 returns $0x0607? Can you determine if it is
  796.      actually 6.0.8 in another way?
  797.      The hard way to change the result value is to change the PTCH resource
  798.      with ID# 0 in the System file. Change the word $07 at offset $0x00ED
  799.      to $08.
  800.  
  801.      System    Resource   Offset  Data
  802.      Version   Type  ID#
  803.      6.0.4     PTCH  0    0x005E   0604
  804.      6.0.8     PTCH  0    0x00EC   0607
  805.      7.0       PTCH  0    0x056E   0700
  806.      7.0.1     PTCH  0    0x0578   0701
  807.      7.1       PTCH  0    0x057C   0710
  808.  
  809.      NOTES:
  810.      In addition KanjiTalk 6.0.7 (Japanese System) and other non-Roman
  811.      versions return $0606. See the 'osyv' selector.
  812.      System J-6.0.7.1 returns $0609
  813.  
  814.      There are some system versions (like International System 6.0.8.1 or
  815.      7.0.1.1) which just return the normal version number, i.e. 6.0.8 and
  816.      7.0.1.
  817. tabl (System [6.0.4])
  818.      gestaltSelectorTable (not listed)
  819.      Returns a handle to the Gestalt selector table itself.
  820.  
  821.      gestaltSelectorTable = 'tabl';
  822.  
  823.      NOTE:
  824.      The Gestalt selector table is kept in a resizable block in the system
  825.      heap. The last item in the table is a dummy entry (INVALID), marked by
  826.      a selector OSType(MaxLongInt). (Marco Piovanelli, he has also some
  827.      snippet Pascal code to list all selectors)
  828. term (System [7.1])
  829.      gestaltTermMgrAttr (addition)
  830.  
  831.      gestaltTermMgrErrorString = 2; *20
  832. tsmv (System [7.1])
  833.      gestaltTSMgrVersion (not listed, not even in IM Text) *18
  834.      Returns Text Services Manager version in BCD.
  835.  
  836.      gestaltTSMgrVersion= 'tsmv';
  837. vers (System [6.0.4])
  838.      gestaltVersion (addition)
  839.  
  840.      The PowerPC prototype, C660AV and Q840AV use Gestalt Manager version 4.
  841. via1 (System [6.0.4, discontinued])
  842.      gestaltVIA1Addr (not listed)
  843.      Returns the address of VIA 1.
  844.  
  845.      gestaltVIA1Addr = 'via1';
  846. via2 (System [6.0.4, discontinued])
  847.      gestaltVIA2Addr (not listed)
  848.      Returns the address of VIA 2.
  849.  
  850.      gestaltVIA2Addr = 'via2';
  851. vm   (System [6.0.4])
  852.      gestaltVMAttr (replacement)
  853.  
  854.      gestaltVMPresent      = 0; {set; virtual memory present}
  855.      gestaltVMNotInstalled = 0; {clear; virtual memory not present}
  856. wma. (System [7.0])
  857.      (Responder ext [2.0?])
  858.      gestaltResponderAttr (not listed)
  859.      Returns information about the Workstation Management Agent aka
  860.      Responder.
  861.  
  862.      gestaltResponderAttr    = 'wma.';
  863.      gestaltResponderPresent = 0;
  864. xttt (System [6.0.8])
  865.      gestaltExtToolboxTable (not listed)
  866.      Returns the base address of the Extended Toolbox trap table.
  867.  
  868.      gestaltExtToolboxTable = 'xttt';
  869.  
  870. Apple Additional Software
  871. -------------------------
  872. arb  (Serial Port Arbitrator ext [1.0], part of AppleTalk Remote Access)
  873.      gestaltArbitorAttr (not listed) *9
  874.      Returns information about the Serial Port Arbitration.
  875.  
  876.      gestaltArbitorAttr             = 'arb ';
  877.      gestaltSerialArbitrationExists = 0;{Serial Port Arbitration installed}
  878. aucd (Audio CD Access ext [4.0], part of Apple CD-ROM Software) *16
  879.      gestaltAudioCDAccessVersion? (not listed)
  880.      Returns Audio CD Access version in BCD.
  881.  
  882.      gestaltAudioCDAccessVersion? = 'aucd';
  883.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  884. cltn (QuickDraw GX [1.0])
  885.      gestaltCollectionMgrVersion (not listed)
  886.      Returns the version of the Collection Manager as NumVersion.
  887.  
  888.      gestaltCollectionMgrVersion = 'cltn';
  889.  
  890.      NOTE:
  891.      The Collection Manager is a set of routines for maintaining tagged
  892.      collections of data; GX uses it to support the "tags" that you can
  893.      attach to GX objects, for holding special data, including
  894.      user-defined data. (Lawrence D'Oliveiro)
  895. cmtc (ColorSync ext [?])
  896.      gestaltColorMatchingVersion (not listed)
  897.      According to the documentation, the value returned by this selector is
  898.      $0x0100 if ColorSync is installed under System 6.0.7, or $0x0110 if
  899.      ColorSync is installed under System 7. (Lawrence D'Oliveiro)
  900.  
  901.      gestaltColorMatchingVersion = 'cmtc';
  902. cpkr (Color Picker ext [2.0?], part of ColorSync Software)
  903.      gestaltColorPickerMgrAttr (not listed)
  904.      Returns information about the Color Picker Manager.
  905.  
  906.      gestaltColorPickerMgrPresent? = 0?; (ColorPicker Mgr Present}
  907.      (Marco Piovanelli, Lawrence D'Oliveiro)
  908.  
  909.      NOTE:
  910.      Extension version 2.0a4 returns a response ($0x0001) which is
  911.      according to the info above. Version 2.0a5 however returns $0x0100, is
  912.      this an error?
  913. drag (Macintosh Drag and Drop ext [1.0])
  914.      gestaltDragMgrAttr *22
  915.      Returns information about the Drag Manager.
  916.  
  917.      gestaltDragMgrAttr    = 'drag'; {Drag Manager attributes}
  918.      gestaltDragMgrPresent = 0;      {Drag Manager is present}
  919. gfxa (QuickDraw GX [1.0])
  920.      gestaltGraphicsAttr (not listed)
  921.      Returns information about the Graphics.
  922.  
  923.      gestaltGraphicsAttr        = 'gfxa'; { graphics attributes bits }
  924.      gestaltGraphicsIsDebugging = 0;
  925.      gestaltGraphicsIsLoaded    = 1;
  926.  
  927.      NOTE:
  928.      The non-debugging version always seems to return 0 from this selector,
  929.      even when a program using GX is currently running.
  930. grfx (QuickDraw GX ext [1.0])
  931.      gestaltGraphicsVersion (not listed)
  932.      Returns the version of the Graphics as INTEGER.
  933.  
  934.      gestaltGraphicsVersion        = 'grfx'; {Gestalt version selector}
  935.      gestaltCurrentGraphicsVersion = 12;     {supposed value returned}
  936.  
  937.      NOTE:
  938.      In fact the 1.0b1 GX returns a value of 13 for this selector.
  939. hscd (High Sierra File Access ext [4.0], part of Apple CD-ROM Software) *16
  940.      gestaltHighSierraFAVersion? (not listed)
  941.      Returns High Sierra File Access version in BCD.
  942.  
  943.      gestaltHighSierraFAVersion? = 'hscd';
  944.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  945. icmp (QuickTime ext [1.0])
  946.      gestaltCompressionMgr (not listed)
  947.      Returns Compression Manager version as Integer
  948.  
  949.      gestaltCompressionMgr = 'icmp'; {determines if Image Compression} *6
  950.                                      {manager is available}
  951. kids (At Ease [1.0])
  952.      ??? (not listed)
  953.      Returns a handle to a structure holding information about At Ease.
  954.  
  955.      The official constant is not defined but the following code was
  956.      published by Apple *21:
  957.  
  958.      #define kAtEaseGestalt    'kids'
  959.      typedef struct {
  960.        short  giVersion;         /* structure version */
  961.        short  giIsActive;        /* true if at ease is currently running */
  962.        short  giAutoCreateAlias; /* if true then auto create alias */
  963.        short  giRequestFloppy;   /* if true then request floppy on new
  964.                                     saves */
  965.        short  giStacksAreApps;   /* if true then HyperCard stacks are shown
  966.                                     with applications */
  967.        FSSpec giItemsLocation;   /* location of the At Ease Items folder */
  968.      } GestaltRec, *GestaltRecPtr, **GestaltRecHand;
  969. kpcd (Apple Photo Access ext [1.0], part of Apple CD-ROM Software) *16
  970.      gestaltApplePhotoAccessVersion? (not listed)
  971.      Returns Apple Phote Access version in BCD.
  972.  
  973.      gestaltApplePhotoAccessVersion? = 'kpcd';
  974.  
  975.      NOTE:
  976.      The above is what the documentation says. However it seems to return
  977.      always $FFFFFF7 as response.
  978. mess (QuickDraw GX [1.0])
  979.      gestaltMessageMgrVersion (not listed)
  980.      Returns the version of the Message Manager as NumVersion.
  981.  
  982.      gestaltMessageMgrVersion = 'mess';
  983.  
  984.      NOTE:
  985.      The Message Manager is an implementation of object-oriented-style
  986.      message passing within an inheritance hierarchy, that can be used from
  987.      non-OO languages.
  988.      It is used by the GX printing system, to allow the customization of
  989.      printing behaviour by letting applications (and developers of printing
  990.      extensions) intercept messages sent to the printer driver.
  991.      (Lawrence D'Oliveiro)
  992. mtcp (MacTCP cp [1.1])
  993.      gestaltMacTCPAttr? (not listed) *5
  994.      Returns the version of MacTCP, if opened, as an index-value.
  995.  
  996.      Response     Version
  997.         1          1.1
  998.         2          1.1.1
  999.         3          2.0
  1000.      If MacTCP is not opened a value of 0 is returned.
  1001.      No constants are defined in the documentation.
  1002.  
  1003.      gestaltMacTCPAttr?    = 'mtcp';
  1004.      gestaltMacTCPPresent? = 0;
  1005.      gestaltMacTCP11?      = 1;
  1006.      gestaltMacTCP111?     = 2;
  1007.      gestaltMacTCP2?       = 3;
  1008. pmgr (QuickDraw GX [1.0])
  1009.      gestaltPrintingMgrVersion (not listed)
  1010.      Returns the version of the QuickDraw GX Printing Manager as NumVersion.
  1011.  
  1012.      gestaltPrintingMgrVersion = 'pmgr';
  1013. qtim (QuickTime ext [1.0])
  1014.      gestaltQuickTime (addition to IM QuickTime)
  1015.      Returns QuickTime version as NumVersion.
  1016.  
  1017.      gestaltQuickTime = 'qtim'; {Movie Toolbox Availability}
  1018.  
  1019.      NOTES:
  1020.      The returned version is obtained from 'vers' resource ID# 1.
  1021.  
  1022.      If you install QuickTime under System 6, a major portion of the Alias
  1023.      Manager and FSSpec support is also added. But, QT doesn't implement
  1024.      the Gestalt selectors because the implementation is not complete. You
  1025.      must check for either Alias Mgr or QuickTime. (Michael Hecht)
  1026.      If QuickTime is present, assume you have an Alias Manager, subject to
  1027.      some limitations (NewAliasMinimalFromFullPath not present). Nearly all
  1028.      the FSSpec calls are available (except FSpExchangeFiles) in System 6
  1029.      when QuickTime is installed. See for more information Technical Note
  1030.      M.QT.MovieTB.Q&As (QT 510) and IM QuickTime.
  1031. scra (Easy Open ext? [1.0]) *12
  1032.      gestaltScrapMgrAttr (not listed)
  1033.      Returns information about the Scrap Manager.
  1034.  
  1035.      gestaltScrapMgrAttr             = 'scra';
  1036.      gestaltScrapMgrTranslationAware = 0;
  1037.      gestaltTranslationMgrHintOrder  = 1; *20
  1038. snhw (System? [???])
  1039.      (Sound Manager ext [3.0])
  1040.      gestaltSoundHardware (not listed)
  1041.  
  1042.      gestaltSoundHardware = 'snhw';
  1043.      gestaltASC           = 'asc ';
  1044.      gestaltDSP           = 'dsp ';
  1045.      gestaltClassicSound  = 'clas';
  1046.      gestaltAWAC?         = 'awac'; {returned on PowerPC prototype}
  1047. strm (Remote Access Aliases [1.0], part of AppleTalk Remote Access)
  1048.      gestaltRemoteAccessAttr *9 (not listed)
  1049.  
  1050.      gestaltRemoteAccessAttr   = 'strm';
  1051.      gestaltRemoteAccessExists = 0; {RA Connection Interface is available}
  1052. teat (Macintosh Drag and Drop ext [1.0])
  1053.      gestaltTEAttr *22
  1054.      Returns information about the functions and capabilities of TextEdit.
  1055.  
  1056.      gestaltTEAttr            = 'teat'; {TextEdit attributes}
  1057.      gestaltTEHasGetHiliteRgn = 0;      {TEGetHiliteRgn present}
  1058. thds (Thread Manager ext [1.1]) *15
  1059.      (QuickDraw GX ext [1.0?])
  1060.      gestaltThreadAttr (not listed)
  1061.      Returns information about the Thread Manager.
  1062.  
  1063.      gestaltThreadAttr           = 'thds'; {Thread Manager attributes}
  1064.      gestaltThreadsPresent       = 0;      {bit true if Threads present}
  1065.      gestaltSpecificMatchSupport = 1;      {bit true if Thread Mgr supp.}
  1066.                                            {exact match creation option}
  1067. ttsc (Text-To-Speech Manager ext [1.0?])
  1068.      gestaltSpeechAttr (listed in Speech Manager documentation)
  1069.      Returns information about the Speech Manager.
  1070.  
  1071.      gestaltSpeechAttr       = 'ttsc'; {Text-To-Speech Manager attributes}
  1072.      gestaltSpeechMgrPresent = 0;      {bit true if Speech Mgr present}
  1073. ufox (Foreign File Access ext [4.0], part of Apple CD-ROM Software) *16
  1074.      gestaltForeignFAVersion? (not listed)
  1075.      Returns Foreign File Access version in BCD.
  1076.  
  1077.      gestaltForeignFAVersion? = 'ufox';
  1078.  
  1079.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1080. xlat (Easy Open ext [1.0]) *12
  1081.      gestaltTranslationAttr (not listed)
  1082.      Returns information about the Translation Manager.
  1083.  
  1084.      gestaltTranslationAttr      = 'xlat';
  1085.      gestaltTranslationMgrExists = 0; {Translation Manager present}
  1086.  
  1087. Third Parties Software
  1088. ----------------------
  1089. !SYM (Symbionts ext [1.0] by B. Kevin Hardman)
  1090.      gestaltSymbiontsTable
  1091.      Returns a pointer to a structure containing the size of the System
  1092.      Heap before and after loading the INITs.
  1093.  
  1094.      gestaltSymbionts = '!SYM';
  1095. ADfd (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1096.      gestaltAfterDarkFolder *23
  1097.      Returns a pointer to a procedure that gives the DirID and vRefNum of
  1098.      the 'After Dark Files' folder. See for more information the file
  1099.      AfterDarkGestalt.h which is available to you using the mail-archive
  1100.      server.
  1101.  
  1102.      gestaltAfterDarkFolder = 'ADfd';
  1103. ADrk (AfterDark [2.0] by Berkeley Systems, Inc.)
  1104.      gestaltAfterDarkAttr *23
  1105.      Returns a longword bitmask containing public information about
  1106.      After Dark.
  1107.  
  1108.      gestaltAfterDarkAttr = 'ADrk'; {After Dark states}
  1109.      eSystemIQActive      = 0;      {SystemIQx activity monitor active}
  1110.      eSoundActive         = 1;      {AD has allocated a sound channel}
  1111.      eADAcquiringPassword = 2;      {After Dark has its password dialog up}
  1112. ApoL (Apollo ext [1.0] by Jeremy Roussak)
  1113.      gestaltApolloTable
  1114.      Returns a handle to an instance of a structure.
  1115.      See for more information the Programmers' Information chapter in the
  1116.      Apollo 1.0 documentation. (Jeremy Roussak)
  1117.  
  1118.      gestaltApolloTable = 'ApoL';
  1119. ASHI (Arashi app [???] by Juri Munkki)
  1120.      ???
  1121.      Returns information about the presence of Arashi by returning one (1)
  1122.      if loaded, and zero (0) when removed.
  1123. AuBu (AutoBuild ext [1.0] by Rene G.A. Ros)
  1124.      gestaltAutoBuildVersion
  1125.      Returns AutoBuild version as NumVersion.
  1126.  
  1127.      NOTE: The returned version is obtained from 'vers' resource ID# 1.
  1128. BIFF (QM Biff ext [1.0] by Patrick C. Beard)
  1129.      Determines if there is mail (QuickMail). The response long word is 1
  1130.      if you have mail, and 0 if you don't.
  1131. CKI3 (AETracker cp [3.0] by C.K. Haun)
  1132.      gestaltAETrackerAddr
  1133.      This selector returns a pointer to the external interface routine for
  1134.      AETracker, details of which are in the AETracker interface guide.
  1135.      (C.K. Haun)
  1136.  
  1137.      gestaltAETrackerAddr = 'CKI3';
  1138. FrcP (Decor cp [1.0] by Francois Pottier)
  1139.      gestaltDecorAddr
  1140.      Returns a pointer to a structure which can be read or changed, and
  1141.      enables programmers to change the picture on the desktop.
  1142.  
  1143.      See for more information on how to use this structure the
  1144.      documentation included with Decor 1.0 or later.
  1145.  
  1146.      NOTE: The c is actually the option-c character (ASCII $8D).
  1147. Gast (Gestalt! appl [2.9.2] by Roland Mansson)
  1148.      gestaltGestaltVersion
  1149.      Returns the version of the application as NumVersion.
  1150.      GestaltValue is removed when application quits. Just for fun.
  1151.      (Roland Mansson)
  1152.  
  1153.      NOTE: The a is actually the option-u/a character (ASCII $8A).
  1154. GTLK (GestaltTalk code by Brigham Stevens, Apple Computer DTS)
  1155.      Snippet code, see documentation. (See chapter 'Related Software'
  1156.      for availability).
  1157. GWat (GestaltWatch ext [1.0] by Scot Bronson)
  1158.      Returns pointer to structure where collected information is stored.
  1159.  
  1160.      NOTE: In development, not yet available.
  1161. Lnch (Network Time cp [2.0] by Pete Resnick)
  1162.      (First Launch Gestalt INIT code resource, by Pete Resnick)
  1163.      gestaltFirstLaunchAttr
  1164.      Returns info on whether the _Launch trap has been called by the
  1165.      System.
  1166.  
  1167.      Bit 0 of the response, gestaltFirstLaunchDone, indicates whether the
  1168.      _Launch trap has been called since startup of the machine. All other
  1169.      bits are reserved and currently 0. Even if not installed at INIT time,
  1170.      Network Time will install the Gestalt selector if it is not already
  1171.      there when the control panel is opened and automatically set
  1172.      bit 0 to 1.
  1173.      68000 assembler source code is available for the INIT that installs
  1174.      the selector, and INIT resource -4048 from Network Time may be
  1175.      stolen (and renumbered as desired) and used in any INIT file as
  1176.      desired. (Pete Resnick)
  1177.  
  1178.      gestaltFirstLaunchAttr = 'Lnch'; {_Launch information)
  1179.      gestaltFirstLaunchDone = 0;      {_Launch called, INIT time over}
  1180. NIPX (Novell MacIPX cp [1.0.1] by Novell Inc.)
  1181.      gestaltNovellIPXVersion
  1182.      Returns the version of MacIPX as NumVersion.
  1183.      If the selector returns an error (i.e. no such selector?) then MacIPX
  1184.      is not installed. If the selector returns 0L then MacIPX is installed
  1185.      but the driver is not open. Any other values is the version.
  1186.      (Duane Murphy)
  1187.  
  1188.      gestaltNovellIPXVersion = 'NIPX';
  1189. NMBT (Attention cp [0.6] by Marco Piovanelli)
  1190.      gestaltAttentionAddr
  1191.      The response value returned is a pointer to a read-only parameter
  1192.      block in the system heap.
  1193.      See for more detailed information the ReadMe file included.
  1194. NTim (Network Time cp [2.0] by Pete Resnick)
  1195.      Returns information private to Network Time.
  1196. PWRS (PwrSwitcher cp [1.0] by David B. Lamkins)
  1197.      gestaltPwrSwitcherTable
  1198.      Returns a pointer to a private data structure (undocumented).
  1199. SAVC (AfterDark cp [2.0?] by Berkeley Systems, Inc.)
  1200.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  1201.      gestaltScreenSaverControl *23
  1202.      Returns a pointer to a procedure which allows controlling the screen
  1203.      saver. See for more information the file AfterDarkGestalt.h which is
  1204.      available to you using the mail-archive server.
  1205.  
  1206.      gestaltScreenSaverControl = 'SAVC';
  1207. SAVR (AfterDark cp [2.0] by Berkeley Systems, Inc.)
  1208.      (DarkSide of the Macintosh [4.0] by Tom Dowdy)
  1209.      (Arashi app [???] by Juri Munkki)
  1210.      gestaltScreenSaverAttr *23
  1211.      Defined if a screen saver is installed.
  1212.  
  1213.      gestaltScreenSaverAttr    = 'SAVR';
  1214.      gestaltSaverTurnedOn      = 0; {saver enabled/disabled}
  1215.      gestaltSaverAsleep        = 1; {saver currently asleep}
  1216.      gestaltSaverDemoMode      = 2; {saver sleeping in demo mode}
  1217.      gestaltSaverPasswordMode  = 3; {saver sleeping in password-protected}
  1218.                                     {mode}
  1219.      gestaltAppDrawingDisabled = 4; {QD drawing disallowed between module}
  1220.                                     {animation frames}
  1221. SDdD (Shutdown Delay cp [2.0.1] by Alessandro Levi Montalcini)
  1222.      kSDDelayCreator
  1223.      Returns a pointer to a data structure described in the documentation
  1224.      included with Shutdown Delay.
  1225.  
  1226.      kSDDelayCreator = 'SDdD';
  1227.  
  1228.      NOTE: The d is actually the option-shift v character (ASCII $D7).
  1229. SLip (StuffIt SpaceSaver ext [1.0?] by Aladdin Systems, Inc.)
  1230.      gestaltStuffItSpaceSaverAddr
  1231.      Returns the address of the SpaceSaver "command module" which allows
  1232.      developers to access all the functions of SpaceSaver.
  1233.      (Leonard Rosenthol)
  1234.  
  1235.      gestaltStuffItSpaceSaverAddr = 'SLip';
  1236. TMON (TMON Pro [3.0] by ICOM Simulations, Inc.)
  1237.      The value returned is a pointer to a Monitor information block. *14
  1238.      (Scott Bronson)
  1239. YeHa (SpeedyFinder7 cp [1.5.4?-1.5.8m] by Victor Tan)
  1240.      The structure to which the _Gestalt selector refers changes almost
  1241.      invariably from version to version of SF7. Should someone work out
  1242.      parts of the structure of the selector keep in mind that it will
  1243.      almost certainly change in the next minor release and definitely with
  1244.      the next major release. (Victor Tan)
  1245.  
  1246. Unknown Gestalt Selector Codes
  1247. ==============================
  1248. The following sections list selector codes of which the meaning is unknow.
  1249.  
  1250. Apple System Software
  1251. ---------------------
  1252. aint (System? [???])
  1253.      NOTE: Returns 2 on a C660AV and Q840AV.
  1254. ascr (AppleScript ext [1.0]) 
  1255.      gestaltAppleScriptAttr?
  1256.  
  1257.      gestaltAppleScriptAttr? = 0; {AppleScript present?}
  1258. ascv (AppleScript ext [1.0])
  1259.      gestaltAppleScriptVersion?
  1260.      Returns the version of AppleScript as NumVersion?
  1261. bast (System [7.1P])
  1262. batt (Powerbook Duo Enabler [1.0])
  1263.      (System Enabler 111 [1.0])
  1264.      (System Enabler 121 [1.0])
  1265.      (System Enabler 131 [1.0])
  1266.      (System Enabler 201 [1.0]))
  1267.      Returns information about the PowerBook battery?
  1268.      
  1269.      gestaltBatteryAttr?      = 'batt';
  1270.      gestalt???               = 0;
  1271.      gestaltAdapterConnected? = 1;
  1272.      gestalt???               = 2;
  1273. brcn (Screen? cp [1.0?] on Color Classic)
  1274. brcN (Energy Save cp [1.0?], part of Monitor Energy Saver)
  1275. BSDa (CloseView cp [???], by Berkeley Systems, Inc.)
  1276.      gestaltCloseViewAttr? (not listed)
  1277.      Returns information about the CloseView Control Panel.
  1278.  
  1279.      gestaltCloseViewAttr? = 'BSDa';
  1280.      gestaltCloseViewOn?   = 0;
  1281. bugy (32-bit System Enabler [1.0])
  1282.      (Hardware System Update ext [1.0])
  1283.      (Sound Manager ext [3.0])
  1284.      (System enabler 065)
  1285.      gestaltEnablerAttr?
  1286.  
  1287.      gestaltEnablerAttr?                  =  'bugy'; ?
  1288.      gestaltEnablerEgretDispatchPatch?    =  0; {these correct the system}?
  1289.      gestaltEnablerEgretTimePatch?        =  1; { clock and modem perf.}?
  1290.      gestalt???                           =  2; {unknown, Hardware Upd.}
  1291.      gestaltEnablerEgretTickHandlerPatch? =  3; { see bit 0 & 1}?
  1292.      gestalt???                           =  4; {unknown, Hardware Upd.}
  1293.      gestaltEnablerSCSIPatch?             =  5; {floppy drive fixed}?
  1294.      gestalt???                           =  6; {unknown, Hardware Upd.}
  1295.      gestaltEnabler32bit?                 =  7; {32-bit enabler present}?
  1296.      gestalt???                           =  9; {unknown, Sound Mgr 3.0}
  1297.      gestalt???                           = 11; {unknown, Hardware Upd.}
  1298.      gestalt???                           = 12; {unknown, Hardware Upd.}
  1299.      gestalt???                           = 13; {unknown, Hardware Upd.}
  1300.      gestalt???                           = 14; {unknown, Hardware Upd.}
  1301.      gestalt???                           = 15; {unknown, Hardware Upd.}
  1302.      gestalt???                           = 16; {unknown, Hardware Upd.}
  1303.      gestaltEnablerKeyboardPatch?         = 17; {corrects Adjustable Kbd
  1304.                                              gestaltKeyboardType response?}
  1305.      gestalt???                           = 18; {unknown, Hardware Upd.}
  1306.  
  1307.      WARNING:
  1308.      These are ALL guesses. Well not entirely, I used the ResEdit CODE
  1309.      Editor to peek into the 32-bit System Enabler and the Hardware System
  1310.      update. Please check if I'am right. You should be able to find answers
  1311.      in the INIT resource of the Hardware Update and the names of the PTCH
  1312.      resources in version 1.0 were also useful...
  1313.      The System Enablers (for new Macintosh models) don't seem to install
  1314.      or change any Gestalt selector to indicate their presence.
  1315. bugz (System (Tuna Helper INIT rsrc) [7.0]/Tune-up ext)
  1316. cfmg (System [7.1 on PowerPC prototype])
  1317. ctxm (???)
  1318. dude (Powerbook Duo Enabler [1.0])
  1319.      (System Enabler 111 [1.0])
  1320.      (System Enabler 121 [1.0])
  1321.      (System Enabler 131 [1.0])
  1322.      (System Enabler 201 [1.0]))
  1323. dudi (Powerbook Duo Enabler [1.0])
  1324.      (System Enabler 111 [1.0])
  1325.      (System Enabler 121 [1.0])
  1326.      (System Enabler 131 [1.0])
  1327.      (System Enabler 201 [1.0]))
  1328. dplv (System [7.1 on PowerPC prototype])
  1329.      Bit 1 set.
  1330. dply (System [7.1 on PowerPC prototype])
  1331.      Bits 0 and 1 set.
  1332. fdrs (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1333.      Installed by Finder extension?
  1334. fnd  (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1335.      Installed by Finder extension?
  1336. fnd& (Finder?, System? [7.1 on PowerPC prototype?])
  1337.      NOTE: The & is actually the option-shift-a character (ASCII $E5).
  1338. fnd? (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1339.      Installed by Finder extension?
  1340. fnda (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1341.      NOTE: The a is actually the option-a character (ASCII $8C).
  1342. fndc (Finder?, System? [7.1 on PowerPC prototype?])
  1343. fndn (Finder?, System? [7.1 on PowerPC prototype?])
  1344.      NOTE: The n is actually an unknown key-combination (ASCII $96).
  1345. FNDR (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1346.      Installed by Finder extension?
  1347. fnd* (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1348.      Installed by Finder extension?
  1349.  
  1350.      NOTE: The * is actually the shift-6 character (ASCII $F6).
  1351. gntz (System [7.1 on PowerPC prototype])
  1352. heap (System [7.1 on PowerPC prototype])
  1353.      Bits 1 and 5 set.
  1354. hcsl (Finder [7.1.1b1?], part of AOCE Developer's Kit)
  1355. idsp (???)
  1356. port (Powerbook Duo Enabler [1.0])
  1357.      (System Enabler 111 [1.0])
  1358.      (System Enabler 121 [1.0])
  1359.      (System Enabler 131 [1.0])
  1360.      (System Enabler 201 [1.0]))
  1361. scsi (System [7.1?])
  1362.      NOTE: Returns 3 on PowerPC prototype and Centris 660AV
  1363. shal (System [7.1?])
  1364.      NOTE: Returns 2 on PowerPC prototype and 1 on Centris 660AV
  1365. udsk (System [7.1 on PowerPC prototype])
  1366. udsv (System [7.1 on PowerPC prototype])
  1367. vmbs (System, Virtual Memory enabled [7.0])
  1368.      gestaltVMBackingStoreRef? (not listed)
  1369.      Returns the file reference number of the Virtual Memory storage file.
  1370.  
  1371.      gestaltVMBackingStoreRef? = 'vmbs';
  1372. vmcl (System, VM on [7.0])
  1373. OSType(7) (System [6.0.4])
  1374.      Returns LongInt('carl') and a result code of noErr.
  1375. OSType(13) (System [6.0.4])
  1376.      Returns LongInt('bbmc') and a result code of noErr.
  1377.  
  1378. Apple Additional Software
  1379. -------------------------
  1380. 3615 (Express Modem cp [1.0], part of Express Modem Software)
  1381. admn (AppleShare Admin appl [3.0])
  1382.      gestaltASAdminAttr?
  1383.  
  1384.      gestaltASAdminAttr?    = 'admn';
  1385.      gestaltASAdminPresent? = 0;
  1386. afps (AppleShare File Server? app? [4.0?])
  1387.      Bit 0 and 16 set.
  1388. asps (AppleShare Print Server appl [3.0])
  1389.      gestaltASPrintServerAttr?
  1390.  
  1391.      gestaltASPrintServerAttr?    = 'asps';
  1392.      gestaltASPrintServerPresent? = 0;
  1393. bART (MacCheck app [1.0])
  1394. BaRT (MacCheck app [1.0])
  1395. comp (QuickDraw Font Plus ext [???], part of the KanjiTalk 7.1)
  1396.  
  1397.      NOTES:
  1398.      The name "QuickDraw Font Plus" is translated from Japanese and may be
  1399.      translated differently by Apple Computer, Inc.
  1400.  
  1401.      I think 'comp' stands for 'composite', as the INIT contains patches to
  1402.      the Font Manager needed to handle 'composite font suitcases'.
  1403.      (Marco Piovanelli)
  1404. doub (WorldScript II ext [???], part of KanjiTalk7)
  1405.      gestaltDoubleByteScript?
  1406.      This selector seems to be installed by WorldScript II (the
  1407.      System 7.1 ext needed to handle double-byte scripts like Japanese,
  1408.      Korean and Traditional Chinese).
  1409. intD (??? [???])
  1410.  
  1411.      NOTE:
  1412.      This is a mystery selector.  It isn't installed by any software, as
  1413.      far as I know, but the Finder 7.1 checks for this selector in certain
  1414.      situations. (Marco Piovanelli)
  1415. fdbk (Speech Setup cp? [???], part of PlainTalk)
  1416. futr (ThreadsINIT ext [2.0?], part of Threads Package)
  1417. gFax (Fax Extension ext [1.1?], part of Express Modem Software)
  1418. hgfd (AppleShare File Server appl [3.0])
  1419.      gestaltASFileServerAttr?
  1420.  
  1421.      gestaltASFileServerAttr?    = 'hgfd';
  1422.      gestaltASFileServerPresent? = 0;
  1423. lstk (Speech Setup cp? [???], part of PlainTalk)
  1424. mash (System [7.1P?]/At Ease [1.0?])
  1425. mfdr (At Ease [1.0])
  1426. ptlk (Speech Setup cp? [???], part of PlainTalk)
  1427. Remt (AutoRemounter cp [???])
  1428. slnk (MNPLinkTool? [1.0], part of AppleTalk Remote Access)
  1429. sndx (Sound Manager ext [3.0]?)
  1430.      gestaltSoundMgrAttr?
  1431.  
  1432.      gestaltSoundMgrAttr?    = 'sndx'?;
  1433.      gestaltSoundMgrPresent? = 0?
  1434. thng (ThreadsINIT ext [2.0?], part of Threads Package)
  1435. thrd (ThreadsINIT ext [2.0?], part of Threads Package)
  1436. tmTE (Inline Extension ext [1.0], part of KanjiTalk7)
  1437.      gestaltInlineExtensionAttr?
  1438.      Returns information about the Inline Extension, if present.
  1439.  
  1440.      gestaltInlineExtensionAttr?    = 'tmTE';
  1441.      gestaltInlineExtensionPresent? = 0;
  1442. tmTV (Inline Extension ext [1.0], part of KanjiTalk7)
  1443.      gestaltInlineExtensionVersion?
  1444.      Returns the version of the Inline Extension as BCD (?).
  1445.  
  1446.      gestaltInlineExtensionVersion? = 'tmTV';
  1447.  
  1448. Third Parties Software
  1449. ----------------------
  1450. Especially the Third Party selectors may change with every new release and
  1451. are therefore only listed in the 'known selectors' part when the author has
  1452. described the structure in the documentation or by email to me.
  1453.  
  1454. AClk (AutoClock Extension ext [1.3?] by Jean-Pierre Gachen)
  1455. ADex (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1456.      NOTE:
  1457.      Not installed by AfterDark but the GDEF indicates it is able to return
  1458.      a response.
  1459. ADii (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1460.      NOTE:
  1461.      Not installed by AfterDark but the GDEF indicates it is able to return
  1462.      a response.
  1463. ADr2 (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1464.      NOTE:
  1465.      Not installed by AfterDark but the GDEF indicates it is able to return
  1466.      a response.
  1467. ADRC (DDExpand appl [3.7.7?] by Fifth Generation Systems)
  1468. AP05 (RapidLock cp or RapidTrak cp [1.1], part of RapidTrak software by
  1469.       by Insignia Solutions Inc.
  1470. AP17 (???)
  1471. ApWi (ApplWindows cp [2.0?] by Hiro Yamamoto)
  1472. aYmm (AfterDark [2.0?] by Berkeley Systems, Inc.)
  1473. AzNe (NameView cp [2.7?] by AStar Technologies, Inc.)
  1474. A–Tr (Trapper ext [1.0?] by Alessandro Levi Montalcini)
  1475. bMRN (Super Boomerang cp [4.0?] part of NOW Utilities 4.0.1p package
  1476.       by NOW Software)
  1477. CHSR (ChooserUser [1.2?] by Maurice Volaski)
  1478. DDAD (AutoDoubler cp [1.0?] by Fifth Generation Systems, Inc.)
  1479. DD37 (DiskDoubler [3.7] by Fifth Generation Systems, Inc.)
  1480. DFlh (DiskFlash cp [1.0] part of ALSoft Power Utilities by ALSoft, Inc.)
  1481. Dpth (DepthMaster cp [1.0] by Victor Tan)
  1482. DWG! (Volume Menu cp [1.0], by David Gladstone, Chris Burns, Julian Harris)
  1483. EM20 (Extensions Manager cp [2.0] by Ricardo Batista)
  1484. ESCa (Escapade cp [1.0?] by Christopher R. Wysocki)
  1485. ESOC (Serial of Champions ext [???] by Mike Throckmorton)
  1486. Extn (NOW Startup Manager cp [4.0?] part of NOW Utilities 4.0.1p package
  1487.       by NOW Software)
  1488. Fie  (Icon7 ext [???] by Inline Designs)
  1489.      gestaltIcon7?
  1490. fmci (FinderMenu INIT ext [1.0], part of UserLand's Frontier Runtime
  1491.      package)
  1492. fPth (FinderPaths cp? [???])
  1493.      NOTE: The f is actually the option-f character (ASCII $C4).
  1494. FtCg (FontPatchin cp [2.0?] by Keisuke Hara)
  1495. fWmM (Super Boomerang cp [4.0?] part of NOW Utilities 4.0.1p package
  1496.       by NOW Software)
  1497. GtOp (MenuExtend cp [1.0], part of ALSoft Power Utilities by ALSoft, Inc.)
  1498. gV00 (PowerPort cp? [???])
  1499. gV01 (PowerPort cp? [???])
  1500. gV02 (PowerPort cp? [???])
  1501. gV03 (PowerPort cp? [???])
  1502. gV04 (PowerPort cp? [???])
  1503. He20 (Helium cp [1.0?] by Robert L. Mathews)
  1504. HPBG (HP Background ext [3.0?] by Hewlett-Packard Company)
  1505.      GDEF always returns value 1.
  1506. HtLk (Reference Link ext [1.0] by James W. Walker)
  1507. iHnd (Invisible Hand cp [1.0] by Carl Mauer)
  1508.      NOTE:
  1509.      Because this cp patches the _Random trap you can use this selector to
  1510.      determine its presence and refuse to continue.
  1511. Intj (Interjection ext [???])
  1512. JAiN (Rival cp by Inline Designs)
  1513.      gestaltRival
  1514.      NOTE: The i is actually the option-u/i character (ASCII $95).
  1515. jsm1 (???)
  1516. JXNM (NowMenus cp [4.0?] part of NOW Utilities 4.0.1p package
  1517.       by NOW Software)
  1518. KBCF (Easy KEYS cp [1.5] by Kerry Clendinning)
  1519. KBCM (???)
  1520. LFnt (Dialog View cp [???], formerly List Font cp by James W. Walker)
  1521. LxRZ (???)
  1522. MClk (SuperClock! [4.0] by Steve Christensen)
  1523. MJC& (AutoMenus II cp [???] by Michael Conrad)
  1524. MV10 (TearOFF cp [???] by Bad Boys' Software)
  1525. NGst (NokNok cp [1.0?])
  1526. NkNk (NokNok cp [1.0?])
  1527. NowT (NOW Toolbox ext [4.0?] part of NOW Utilities 4.0.1p package
  1528.       by NOW Software)
  1529. PBUf (???)
  1530. PBUt (???)
  1531. PRT+ (PrintAid [0.9?] by James W. Walker)
  1532. QRef (QuickRef ext? [1.0] by Scott Bronson)
  1533. RQDC (DropCheck cp [???] by Ronald B. Queloz)
  1534. SEcl (ScreenEclipse cp [1.0], part of ALSoft Power Utilities by
  1535.      ALSoft, Inc.)
  1536. SFun (SF Windows [1.0] by Damon Cokenias)
  1537. SFwd (Open-wide cp [3.0?] by James W. Walker)
  1538. SLi2 (StuffIt SpaceSaver ext by Aladdin Systems, Inc. ?)
  1539. ST20 (Snap-To cp [2.0?] by Trevden Sherzell)
  1540. SDIT (???)
  1541. STYH (StayHere! cp [2.0?] by Nobuhiro Miyatake)
  1542. TgrX (Xmas Lights cp [1.0] by Tiger Technologies)
  1543. Tmon (TMON Pro cp? [3.0] by ICOM Simulations)
  1544. UlOn (UndelineEnabler ext [2.0?], part of FontPachin package by Keisuke Hara)
  1545.      See also FtCg selector.
  1546. View (StuffIt Viewer Engine [???] by Aladdin Systems Inc.)
  1547.      gestaltViewerEngine
  1548. XTND (not installed by any software)
  1549.      NOTE:
  1550.      Is used in some code to check if XTND engine is present. However it is
  1551.      never installed, so supposedly it is meant for future use. Like a
  1552.      built-in XTND engine in the System Software? When the selector is
  1553.      installed all operations are dispatched through trap $ABF4 otherwise
  1554.      the library provides the code. (Marco Piovanelli)
  1555. WARE (???)
  1556. WREO (Replace Existing Options cp [???] by Jonathon Summers)
  1557.      NOTE: The W is actually the option-w character (ASCII $B7).
  1558. Wttf (TeachText7.0 Font ext [???] by Jonathon Summers)
  1559.      NOTE: The W is actually the option-w character (ASCII $B7).
  1560. *Men (OtherMenu ext [1.0b16?, discontinued?] by James W. Walker)
  1561.  
  1562. Gestalt Manager Calls
  1563. =====================
  1564. All standard calls to the _Gestalt or _GestaltValueDispatch trap are listed
  1565. in this chapter.
  1566.  
  1567. Gestalt Manager Routines
  1568. ------------------------
  1569. The CallSelectorFunctionProc and NewSelectorFunctionProc functions were
  1570. listed in the GestaltEqu.h file on E.T.O. #12 CD-ROM but not yet fully
  1571. documented. Sorry, for mixing Pascal and C source, I will convert
  1572. everything to C when I know enough about it and have the time.
  1573.  
  1574. FUNCTION Gestalt (selector: OSType; VAR Response: LongInt): OSErr;
  1575.      Available since System 6.0.4.
  1576.      Trap Macro
  1577.        _Gestalt ($A1AD)
  1578.      Registers on entry   D0: selector code
  1579.      Registers on exit    A0: response
  1580.                           D0: result code
  1581.      Result codes
  1582.        noErr                       0 No error
  1583.        gestaltUnknownErr       -5550 Could not obtain the response
  1584.        gestaltUndefSelectorErr -5551 Undefined selector
  1585. FUNCTION NewGestalt (selector: OSType; selectorfunction: ProcPtr): OSErr
  1586.      Available since System 6.0.4.
  1587.      Trap Macro
  1588.        _NewGestalt ($A3AD)
  1589.      Registers on entry   A0: address of new selector function
  1590.                           D0: selector code
  1591.      Registers on exit    D0: result code
  1592.      Result codes
  1593.        noErr                       0 No error
  1594.        memFullErr               -108 Ran out of memory
  1595.        gestaltDupSelectorErr   -5552 Selector already exists
  1596.        gestaltLocationErr      -5553 Function not in system heap
  1597. FUNCTION ReplaceGestalt (selector: OSType; selectorfunction: ProcPtr;
  1598.                          VAR oldGestaltFunction: ProcPtr): OSErr;
  1599.      Available since System 6.0.4.
  1600.      Trap Macro 
  1601.        _ReplaceGestalt ($A5AD)
  1602.      Registers on entry   A0: address of new selector function
  1603.                           D0: selector code
  1604.      Registers on exit    A0: address of old selector function
  1605.                           D0: result code
  1606.      Result codes
  1607.        noErr                       0 No error
  1608.        gestaltUndefSelectorErr -5551 Undefined selector
  1609.        gestaltLocationErr      -5553 Function not in system heap
  1610. #define CallSelectorFunctionProc(userRoutine, selector, response)  \
  1611.         (*userRoutine)(selector, response)
  1612.      Trap Macro 
  1613.        ??? (???)
  1614.      Registers on entry   ???
  1615.      Registers on exit    ???
  1616.      Result codes
  1617.        noErr                       0 No error
  1618.        ???                       ??? ???
  1619. #define NewSelectorFunctionProc(userRoutine)  \
  1620.         (SelectorFunctionUPP)(userRoutine)
  1621.      Trap Macro 
  1622.        ??? (???)
  1623.      Registers on entry   ???
  1624.      Registers on exit    ???
  1625.      Result codes
  1626.        noErr                       0 No error
  1627.        ???                       ??? ???
  1628.          
  1629. Undocumented Gestalt Manager Routines
  1630. -------------------------------------
  1631. FUNCTION? GestaltDispatch? (???):OSErr;?
  1632.      Trap Macro
  1633.        _GestaltDispatch ($A0AD)
  1634.      Registers on entry   ???
  1635.      Registers on exit    ???
  1636.      Result codes
  1637.        noErr                       0 No error
  1638.        ???
  1639.  
  1640.      NOTE:
  1641.      Found in the MPW, THINK C and THINK Pascal Traps Interface file
  1642.      on 'Bookmark CD 14'.
  1643.      Available since System 6.0.4 but code will always return error -50
  1644.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  1645. FUNCTION? GetGestaltProcPtr? (selector?: OSType;
  1646.                               var selectorfunction: ProcPtr): OSErr;?
  1647.      Trap Macro
  1648.        _GetGestaltProcPtr ($A7AD)
  1649.      Registers on entry   D0: selector code?
  1650.      Registers on exit    ??: address of selector function
  1651.      Result codes
  1652.        noErr                       0 No error
  1653.        ???
  1654.  
  1655.      NOTE:
  1656.      Found in the MPW Traps Interface file on 'Bookmark CD 14'.
  1657.      Available since System 6.0.4 but code will always return error -50
  1658.      (paramErr). (Lawrence D'Oliveiro, Rene Ros)
  1659.      I (Rene Ros) have written Pascal code to do what this system call
  1660.      probably is planned to do in the future.
  1661.  
  1662. Gestalt Value Routines
  1663. ----------------------
  1664. Please note the GestaltValue routines are currently invoked through a
  1665. library, and only in the future will GestaltValue be moved into the OS
  1666. proper. The GestaltValue functions are stack based and don't use registers.
  1667. The GestaltValue library first checks to see if trap $ABF1 is implemented
  1668. (not with any system software available). If trap $ABF1 is implemented, all
  1669. calls to the library are routed to this trap, otherwise the library uses
  1670. embedded code.
  1671. WARNING:
  1672. The GestaltValue library distributed originally checks for the wrong trap
  1673. (_ThreadDispatch, $ABF2). Make sure your software doesn't crash when this
  1674. trap is installed by the Thread Manager Extension. See Related Software
  1675. chapter for availability.
  1676. (Most info about the GestaltValue functions was provided by
  1677. Marco Piovanelli and Dave Radcliff).
  1678.  
  1679. FUNCTION NewGestaltValue (selector: OSType; newValue: LongInt): OSErr;
  1680.      Available as glue code.
  1681.      Trap Macro                      Selector
  1682.        _GestaltValueDispatch ($ABF1) $0401
  1683.      Result codes
  1684.        noErr                       0 No error
  1685.        unimpErr                   -4 Unimplemented core routine
  1686.        memFullErr               -108 Ran out of memory
  1687.        (and other memory errors)
  1688.        gestaltDupSelectorErr   -5552 Selector already exists
  1689. FUNCTION ReplaceGestaltValue (selector: OSType;
  1690.                               replacementValue: LongInt): OSErr;
  1691.      Available as glue code.
  1692.      Trap Macro                      Selector
  1693.        _GestaltValueDispatch ($ABF1) $0402
  1694.      Result codes
  1695.        noErr                       0 No error
  1696.        unimpErr                   -4 Unimplemented core routine
  1697.        memFullErr               -108 Ran out of memory
  1698.        (and other memory errors)
  1699.        gestaltUndefSelectorErr -5551 Undefined selector
  1700. FUNCTION DeleteGestaltValue (selector: OSType): OSErr;
  1701.      Available as glue code.
  1702.      Trap Macro                      Selector
  1703.        _GestaltValueDispatch ($ABF1) $0203
  1704.      Result codes
  1705.        noErr                       0 No error
  1706.        unimpErr                   -4 Unimplemented core routine
  1707.        gestaltUndefSelectorErr -5551 Undefined selector
  1708.  
  1709. Kilo-liners
  1710. ===========
  1711. This chapter will list very small pieces of code which are related to
  1712. any Gestalt Routine.
  1713.  
  1714. Modula-2 source:
  1715. TYPE
  1716.     SelectorFunction =
  1717.       PROCEDURE
  1718.       (
  1719.        (*selector :*) OSType,
  1720.        VAR (*response :*) LONGCARD
  1721.       ) : OSErr;
  1722.  
  1723. C-source:
  1724. typedef pascal OSErr (*SelectorFunction)(OSType, long);
  1725.  
  1726. Direct Gestalt Calls
  1727. --------------------
  1728. You can use the following code to call directly the Gestalt, NewGestalt and
  1729. ReplaceGestalt traps. In that way the (large) glue code will not be
  1730. installed by your compiler. (Contributions by Lawrence D'Oliveiro and
  1731. Marco Piovanelli).
  1732.  
  1733. Modula-2 source:
  1734.     PROCEDURE Gestalt
  1735.       ( selector : OSType;
  1736.         VAR response : LONGINT
  1737.       ) : OSErr;
  1738.       (* direct call to Gestalt trap. *)
  1739.  
  1740.         CODE
  1741.             0225FH,    (* move.l (sp)+, a1 *)
  1742.             0201FH,    (* move.l (sp)+, d0 *)
  1743.             0A1ADH,    (* _Gestalt *)
  1744.             02288H,    (* move.l a0, (a1) *)
  1745.             03E80H;    (* move.w d0, (sp) *)
  1746.  
  1747. Pascal-source:
  1748.      FUNCTION Gestalt (selector: OSType;
  1749.                        VAR response: LONGINT): OSErr;
  1750.      {direct call to Gestalt trap.}
  1751.      inline $225F, $201F, $A1AD, $2288, $3E80;
  1752.  
  1753. Modula-2 source:
  1754.      PROCEDURE NewGestalt
  1755.       ( selector: OSType;
  1756.         gestaltFunction: SelectorFunction
  1757.       ): OSErr;
  1758.      (* direct call to NewGestalt trap. *)
  1759.  
  1760.      CODE   0205FH,    (* move.l (sp)+, a0 *)
  1761.             0201FH,    (* move.l (sp)+, d0 *)
  1762.             0A3ADH,    (* _NewGestalt *)
  1763.             03E80H;    (* move.w d0, (sp) *)
  1764.  
  1765. Pascal-source:
  1766.      FUNCTION NewGestalt (selector: OSType;
  1767.                           gestaltFunction: ProcPtr): OSErr;
  1768.      {direct call to NewGestalt trap}
  1769.      inline $205F, $201F, $A3AD, $3E80;
  1770.  
  1771. Modula-2 source:
  1772.     PROCEDURE ReplaceGestalt
  1773.       ( selector : OSType;
  1774.         gestaltFunction : SelectorFunction;
  1775.         VAR oldGestaltFunction : SelectorFunction
  1776.       ) : OSErr;
  1777.       (* direct call to Gestalt trap. *)
  1778.  
  1779.         CODE
  1780.             0225FH,    (* move.l (sp)+, a1 *)
  1781.             0205FH,    (* move.l (sp)+, a0 *)
  1782.             0201FH,    (* move.l (sp)+, d0 *)
  1783.             0A5ADH,    (* _ReplaceGestalt *)
  1784.             02288H,    (* move.l a0, (a1) *)
  1785.             03E80H;    (* move.w d0, (sp) *)
  1786.  
  1787. Pascal-source:
  1788.      FUNCTION ReplaceGestalt (selector: OSType;
  1789.                               gestaltFunction: ProcPtr;
  1790.                               VAR oldGestaltFunction: ProcPtr
  1791.                              ): OSErr;
  1792.      {direct call to ReplaceGestalt trap.}
  1793.      inline $225F, $205F, $201F, $A5AD, $2288, $3E80;
  1794.  
  1795. Direct GestaltValue Calls
  1796. -------------------------
  1797. You can use the following code to call directly the NewGestaltValue,
  1798. ReplaceGestaltValue and DeleteGestaltValue when the _GestaltValueDispatch
  1799. trap is available.
  1800.  
  1801. Pascal-source: *20
  1802.      FUNCTION NewGestaltValue(selector: OSType, newValue: LongInt): OSErr;
  1803.      inline $303C, $0401, $ABF1;
  1804.  
  1805.      FUNCTION ReplaceGestaltValue(selector: OSType,
  1806.                                   replacementValue: LongInt): OSErr;
  1807.      inline $303C, $0402, $ABF1;
  1808.      
  1809.      FUNCTION DeleteGestaltValue(selector: OSType): OSErr;
  1810.      inline $303C, $0203, $ABF1;
  1811.  
  1812. GestaltSelectorZero
  1813. -------------------
  1814. With all the selectors that are supposed to return non-zero values if
  1815. installed, it may be helpful to have a utility routine that returns a zero
  1816. value (instead of an error) if a selector isn't installed. It's short and
  1817. sweet because it makes a direct call to the _Gestalt trap; of course this
  1818. means you can't use it on systems earlier than 6.0.4.
  1819. (Contributed by Lawrence D'Oliveiro)
  1820.  
  1821. Modula-2 source:
  1822.      PROCEDURE GestaltSelectorZero (Selector: OSType): LONGCARD;
  1823.      (* returns the value of the specified Gestalt selector,
  1824.      or zero if unknown. *)
  1825.      CODE   0201FH,    (* move.l (sp)+, d0 *)
  1826.             0A1ADH,    (* _Gestalt *)
  1827.             06702H,    (* beq.s @2 *)
  1828.             091C8H,    (* sub.l a0, a0 *)
  1829.             02E88H;    (* @2: move.l a0, (sp) *)
  1830.  
  1831. Pascal-source:
  1832.      FUNCTION GestaltSelectorZero (Selector: OSType): LongInt;
  1833.      {returns the value of the specified Gestalt selector,}
  1834.      {or zero if unknown.}
  1835.      inline $201F, $A1AD, $6702, $91C8, $2E88;
  1836.  
  1837. Call Gestalt Definiton Direct
  1838. -----------------------------
  1839. Suppose you have just loaded a GDEF resource, or replaced one and keep the
  1840. original around and store a pointer to it somewhere private. Suppose next,
  1841. you want to call it to obtain a response without using yet another selector.
  1842. Thats what the following inline code is usefull for. Just pass it the
  1843. usual selector and result parameters but also a pointer to the GDEF
  1844. (Lock it if it's still a relocatable block).
  1845.  
  1846. Pascal-source:
  1847.      FUNCTION CallGestaltDEF (selector: OSType;
  1848.                               var result: LongInt;
  1849.                               aRoutine: ProcPtr): OSErr;
  1850.      inline $205F, $4E90;
  1851.             {MOVE.L (SP)+, A0}
  1852.             {JSR (A0)}
  1853.  
  1854. Abbreviations
  1855. =============
  1856. ADB      - Apple Desktop Bus
  1857. AS       - AppleShare
  1858. ASC      - Apple Sound Chip
  1859. ASIC     - Application specfic integrated circuit
  1860. AWAC     - ???
  1861. Caboose  - processor that manages the keyswitch, system power,
  1862.            the real-time clock, and parameter RAM 
  1863. CLUT/DAC - color look-up table and digital-to-analog converter IC
  1864. Combo    - chip, combines the functions of the SCC and the SCSI controller
  1865. CPU      - Central Processing Unit
  1866. DAFB     - Direct Access Frame Buffer
  1867. DAV      - Digital Audio Video
  1868. DDC      - Display Driver Chip
  1869. DFAC     - Digitally Filtered Audio Chip
  1870. DMA      - Direct Memory Access
  1871. DN       - Developer Note
  1872. DSP      - Digital Signal Processor
  1873. FPU      - Floating Point Unit
  1874. GDEF     - Gestalt DEFinition (code resource)
  1875. GPi      - General Purpose Input
  1876. IM       - Inside Macintosh (old volumes I-VI)
  1877. IOP      - Input/Output Processor
  1878. IWM      - Integrated Woz Machine
  1879. JDB      - Junction Data Bus
  1880. MCU      - Memory Control Unit
  1881. MMU      - Memory Management Unit
  1882. OCE      - Open Colloboration Environment
  1883. OSS      - ???
  1884. PB       - PowerBook
  1885. PDS      - Processor-Direct Slot
  1886. PGC      - Parity Generator Chip
  1887. PMMU     - Paged Memory Management Unit
  1888. PSRAM    - Pseudo Static RAM
  1889. PPC      - Process-to-Process Communication
  1890. PWM      - Pulse-Width Modulated?
  1891. RAMDAC   - Random Access Memory, Digital/Analog Converter
  1892. RBV      - RAM-Based Video
  1893. RTC chip - Real-Time Clock chip
  1894. SCC      - Serial Communications Controller
  1895. SCSI     - Small Computer System Interface
  1896. SIMM     - Single In-line Memory Module
  1897. Sonic    - chip for built-in Ethernet
  1898. Sporty   - a custom IC that provides sound output amplification functions
  1899. SRAM     - Static RAM
  1900. SWIM     - Super Integrated Woz Machine
  1901. TN       - Technical Note
  1902. VIA      - Versatile Interface Adapter
  1903. VRAM     - Video RAM
  1904. VM       - Virtual Memory
  1905. VDAC     - Video Digital to Analog Converter
  1906. YANCC    - Yet Another NuBus Controller Chip
  1907.  
  1908. FA       - File Access
  1909. RA       - Remote Access
  1910.  
  1911. Sources
  1912. =======
  1913.  *1 Apple Inc.; TN M.OV.GestaltSysenvirons (OV 16), May 1987
  1914.  *2 Symantec Corp.; THINK Pascal 4.0.1
  1915.  *3 Carl C.Hewitt; Gestalt DA 0.4 1990
  1916.  *4 Apple Computer Inc.; TN M.NW.AppleTalk2 (NW 13), Feb.1992
  1917.  *5 Apple Computer Inc.; MacTCP Programmer's Guide.
  1918.  *6 Apple Computer Inc.; QuickTime ImageCompression source files
  1919.  *7 Symantec Corp.; Think C GestaltGlue source files
  1920.  *8 Eric Simenel, Apple Computer France; Gestalt dcmd 1.0
  1921.  *9 Apple Computer Inc.; AppleTalk Remote Access API External
  1922.                          Reference Specification
  1923. *10 Symantec Corp.; THINK Reference 1.0
  1924. *11 Apple Computer Inc.; CommToolbox 1.1 source files
  1925. *12 Apple Computer Inc.; Macintosh Easy Open programmer's docs
  1926. *13 Apple Computer Japan, Inc.; sysvINIT source files
  1927. *14 ICOM Simulations; TMON Professional Reference Manual (p.192)
  1928. *15 Apple Computer Inc.; Thread Manager 1.1 documentation
  1929. *16 Apple Computer Inc.; TN M.DV.CD-ROMDriver (DV 22), May 1993
  1930. *17 Apple Computer Inc.; TN M.HW.SCSI.Q&As (HW 540), Oct. 1990
  1931. *18 Apple Computer Inc.; TN M.TX.TextServicesMgr.Q&As (TE 531), May 1993
  1932. *19 Apple Computer Inc.; MPW Interface files on Bookmark CD 14
  1933. *20 Apple Computer Inc.; GestaltEqu interface files on ETO #12
  1934. *21 Apple Computer Inc.; 'Sept 93 Late Breaking Q&As' on Bookmark CD 15
  1935. *22 Apple Computer Inc.; Drag Manager Programmer's Guide
  1936. *23 Berkeley Systems, Inc.; AfterDarkGestalt.h file
  1937.  
  1938. Miscellaneous
  1939. =============
  1940. This chapter lists a number of miscellaneous data.
  1941.  
  1942. AppleShare File & Print Server selector codes
  1943. ---------------------------------------------
  1944. The selectors are defined when the application has run. If it is still
  1945. running (or wasn't properly quit) the response is one. When the application
  1946. has properly quit the response is zero.
  1947.      admn AppleShare Admin
  1948.      asps AppleShare Print Server
  1949.      hgfd AppleShare File Server
  1950. (these three are undocumented)
  1951.  
  1952. Glue code
  1953. ---------
  1954. The following programming software includes glue-code to return some
  1955. responses even if the Gestalt Manager is not available. Every entry
  1956. includes the selectors of which the Glue-code can return a response.
  1957.  
  1958. Symantec THINK Pascal [at least since 4.0]:
  1959.      atlk, fpu , kbd , lram, mach, mmu , proc, qd  , ram , sysv, vers
  1960.  
  1961. MPW 3.2 and THINK C?:
  1962.      atlk, fpu , kbd , lram, mach, proc, qd  , ram , sysv, vers
  1963.      (Source: Programming Public Domain FAQ by John W{tte)
  1964.  
  1965. Related Software
  1966. ----------------
  1967. Listed below is software which may be of interest to developers because
  1968. they are a tool providing information from the Gestalt Manager, include
  1969. Gestalt-related source code or provide additional capabilities to the
  1970. Gestalt Manager. Included is also were you can find or get a copy.
  1971. All software available on sumex-aim.stanford.edu is also available on the
  1972. INFO-MAC CD-ROM by Pacific HiTech, Inc. The INTERNET FTP-sites mentioned
  1973. may have one or more mirror sites as well. Locations on CompuServe are not
  1974. included.
  1975. Some software listed below can also be found at the mail-archive server,
  1976. see the chapter 'Availability' for more information.
  1977.  
  1978. 5thColumn, GestaltProbe (by Kamran Golriz)
  1979.      Extension with MPW Tools to query other mac on a network, one of
  1980.      the tools is GestaltProbe.
  1981.        CD-ROM: Bookmark CD (Apple Developer Group)
  1982.                  :Tools & Applications:Network & Communications:5th Column:
  1983. AEgestalt (by Kent Sandvik)
  1984.      Uses Apple Events to get Gestalt response from remote machine,
  1985.      includes C-source. (Requires color?? Doesn't run on MacPlus)
  1986.        FTP:    ftp.apple.com [130.43.2.3]
  1987.                  /dts/mac/sc/snippets/platforms.tools/aegestalt-1-0.hqx
  1988.        CD-ROM: Bookmark CD (Apple Developer Group)
  1989.                  :Documentation & Samples:Sample Code:Snippets:
  1990.                  Platforms & Tools:AEGestalt 1.0:
  1991. DisplayGestalt (by Craig Marciniak)
  1992.      Small application displays configuration using Gestalt Mgr, includes
  1993.      C-source.
  1994.        FTP:    mac.archive.umich.edu [141.211.165.34]
  1995.                  /development/libraries/displaygestalt.cpt.hqx
  1996. Feature Teller 1.0 (by Jennifer Minge)
  1997.      Sample application quering Gestalt Mgr (or SysEnvirons if not
  1998.      available). Includes THINK Pascal source.
  1999.        CD-ROM: Bookmark CD (Apple Developer Group)
  2000.                  :Tools & Applications:OS/Toolbox:Feature Teller 1.0:
  2001. Gestalt! 2.9.4 (by Roland Mansson)
  2002.      Displays responses from installed selectors.
  2003.        FTP:    ftp.lu.se [130.235.132.89]
  2004.                  /pub/mac/util/Gestalt!_294.cpt.hqx
  2005.                sumex-aim.stanford.edu [36.44.0.6]
  2006.                  /info-mac/util/gestalt-28.hqx
  2007. GestaltDA 0.4 (by Carl C. Hewitt)
  2008.      Displays responses from installed selectors.
  2009.        CD-ROM: Bookmark CD (Apple Developer Group)
  2010.                  :Tools & Applications:OS/Toolbox:GestaltDA 0.4
  2011. Gestalt DCMD
  2012.      This dcmd (debugger command for MacsBug) allows you to "use" Gestalt
  2013.      when you're in MacsBug.
  2014.        FTP:    ftp.apple.com [130.43.2.3]
  2015.                  /dts/mac/sc/snippets/platforms.tools/gestalt-dcmd.hqx
  2016.        CD-ROM: Bookmark CD (Apple Developer Group)
  2017.                  :Documentation & Samples:Sample Code:Snippets:
  2018.                  Platforms & Tools:Gestalt dcmd:
  2019. GestaltExt (by Andre Cavegn)
  2020.      External for 4TH Dimension Relational Database application from
  2021.      ACI/ACI US.
  2022.        FTP:    sumex-aim.stanford.edu [36.44.0.6]
  2023.                  /info-mac/dev/a4d/ext/gestalt-ext.hqx
  2024. GestaltGlue
  2025.      Glue code and interface in C and assembly.
  2026.        CD-ROM: Bookmark CD (Apple Developer Group)
  2027.                  :Documentation & Samples:Sample Code:System 7.0 samples:
  2028.                  DTS.Utilities:Gestalt*
  2029. GestaltTalk (by Brigham Stevens, Apple Computer DTS)
  2030.      Code part of Notification Hacks to show how you can communicate
  2031.      between an application and an INIT using the Gestalt Mgr. Includes
  2032.      C-source files.
  2033.        CD-ROM: Bookmark CD (Apple Developer Group)
  2034.                  :Documentation & Samples:Sample Code:Snippets:
  2035.                  Toolbox:Notification Hacks:GestaltTalk:
  2036. GestaltValue (anonymous, Apple Computer Inc.)
  2037.      Library and interface for use of the GestaltValue functions.
  2038.        CD-ROM: Bookmark CD (Apple Developer Group)
  2039.                  :Tools & Applications:OS/Toolbox:GestaltValue:
  2040.        email:   Dave Radcliff, Mac DTS
  2041.                 radcliff@apple.com
  2042. GestaltWatch ext 1.0a1 (by Scott Bronson)
  2043.      Tracks all calls to NewGestalt and ReplaceGestalt traps.
  2044.      Not available yet.
  2045. Gestalt XFCN 3.2.1 (by Jeff Iverson)
  2046.      Hypercard XFCN to query the Gestalt Manager.
  2047.        FTP:    sumex-aim.stanford.edu [36.44.0.6]
  2048.                  /info-mac/card/gestalt-321.hqx
  2049. Gestaltzeigen appl 1.0 (by B. Kevin Hardman)
  2050.      Displays responses from installed selectors and any bit
  2051.      interpretation. Not available yet.
  2052. Technical Notes:
  2053.      M.OV.GestaltSysenvirons (Gestalt & SysEnvirons)
  2054.      M.NW.AppleTalk2         (AppleTalk The Rest Of the Story)
  2055.      M.OS.GestaltMgr.Q&As    (Gestalt Manager Questions and Answers)
  2056.        FTP:    ftp.apple.com [130.43.2.3]
  2057.                  /dts/mac/tn/
  2058.                    overview/gestalt-and-system-environs.hqx
  2059.                    networking/appletalk2.hqx
  2060.                    M.OU.GestaltMgr.Q&As not yet available 
  2061.        CD-ROM: Bookmark CD (Apple Developer Group)
  2062.                  :Documentation & Samples:Mac Tech Notes:
  2063.                    Overview (OV):OV 16 - Gestalt & SysEnvirons
  2064.                    Networking (NW):NW 13 - AppleTalk The Rest Of
  2065.                    Operating System (OS):OS 505 - Gestalt Mgr Q&As
  2066. Test Gestalt
  2067.      Examples to test for QuickDraw version and Virtual Memory status,
  2068.      includes C-source.
  2069.        FTP:    ftp.apple.com [130.43.2.3]
  2070.                  /dts/mac/sc/snippets/toolbox/testgestalt.hqx
  2071.       CD-ROM:  Bookmark CD (Apple Developer Group)
  2072.                  :Technical Documentation:Sample Code:Snippets:
  2073.                  Toolbox:TestGestalt:
  2074.  
  2075. About this list
  2076. ===============
  2077. I would like to see this list to be a combined effort by different persons
  2078. who have together access to a wide area of information.
  2079. This list may contain (educated) guesses and perhaps even false
  2080. information, so no guarantee is made about the contents.
  2081. You may use this information freely (see Legal Stuff chapter), but when you
  2082. find information not included in IM VI or in this list; please tell me.
  2083. If you have additions, corrections, comments, suggestions, news about
  2084. available software, etc., please mail me. Please, also mention the source
  2085. you used, if any.
  2086. You can send contributions, remarks, etc. to this email address:
  2087.     gestalt-selectors-list@bio.vu.nl
  2088. If you want to remain anonymous, please mention this and it will be taken
  2089. care of.
  2090. I don't have all the documentation or knowledge and I don't want to, and
  2091. I'am certainly not Mr.Gestalt.
  2092.  
  2093. Availability
  2094. ------------
  2095. If you have downloaded this list from CompuServe, BBS, or any other service,
  2096. you will notice some strange things like 'FTP-sites' which have to do
  2097. with the fact that this list originates from INTERNET.
  2098.  
  2099. This list is originally distributed in the following ways:
  2100.  
  2101. **INTERNET**
  2102.  
  2103. USENET newsgroup comp.sys.mac.programmer (c.s.m.p.)
  2104. This list has become too large to post to c.s.m.p., so starting from
  2105. version 2.2 this list will no longer be posted. Instead an announcement
  2106. will be posted informing were you can find the latest version.
  2107.  
  2108. FTP-site
  2109. sumex-aim.stanford.edu [36.44.0.6]
  2110. Every minor and major version is submitted to the info-mac archives at
  2111. sumex-aim.stanford.edu. (/info-mac/dev/info/gestalt-selectors-XX.hqx)
  2112. It is also available on its mirror sites (e.g. in Europe: lth.se).
  2113.  
  2114. FINGER
  2115. Using Finger to obtain the latest version is no longer possible.
  2116.  
  2117. **COMPUSERVE**
  2118.  
  2119. Starting with version 2.0 this list will be uploaded to the
  2120. Macintosh Developers Forum (MACDEV). Only new minor and major versions
  2121. will be uploaded once. It will then appear in the Tools/Debuggers (13)
  2122. section.
  2123.  
  2124. **GENERAL**
  2125.  
  2126. CD-ROM or BBS
  2127. Because of permissions I granted you may get this list from a CD-ROM
  2128. (BBS in a BOX, Info-Mac CD-ROM, MacWorld CD-ROM BeNeLux, Nautilus CD-ROM)
  2129. or via a BBS from Internet, CompuServe or a CD-ROM. If you do, and the
  2130. release was more than a month ago, there is probably already a new version.
  2131.  
  2132. MAILING LIST
  2133. Every person on the mailing list gets automatically an update by email
  2134. whenever there are some changes. If you want to subscribe or unsubscribe to
  2135. this distribution list you need to send an email to this address:
  2136.     gestalt-selectors-list-request@bio.vu.nl
  2137. Then put in the subject line either 'subscribe' or 'unsubscribe'.
  2138.  
  2139. The mailing list is moderated, which means everybody, who is subscribed,
  2140. can email to:
  2141.     gestalt-selectors-list@bio.vu.nl
  2142. But only after approval of the moderator the other subscribers will receive
  2143. your posting. This guarantees that no confidential contribution is
  2144. distributed before the moderator has seen it.
  2145.  
  2146. This service is only possible to those who have an account on Internet or
  2147. any other network reachable from Internet (CompuServe, AOL, AppleLink).
  2148. I can not provide mailing of printed versions or on disk by normal surface
  2149. mail.
  2150.  
  2151. MAIL ARCHIVE SERVER
  2152. Your can retrieve the latest versions of this list by sending an email to
  2153. this address:
  2154.     gestalt-selectors-list-request@bio.vu.nl
  2155. In the subject line you need to enter 'archive' and then put one command
  2156. behind it or more in the body of your email. These commands can be:
  2157.     help             to get some help on using the archive server
  2158.     ls <dir>         to list the contents of the specified directory
  2159.     get <dir>/<file> to have the specified file sent to you by email.
  2160. To obtain the abstracts of all files available use this command:
  2161.     get ABSTRACTS
  2162.  
  2163. PRINTED
  2164. If you want this list printed on paper you may want to try a new feature
  2165. included with the new LaserWriter 8.0 software. With it you can print four
  2166. pages on a single sheet of paper. When you set the page breaks correct,
  2167. this produces a very neat, little booklet.
  2168.  
  2169. Acknowledgements
  2170. ----------------
  2171. I would like to thank the following persons for their contribution to
  2172. this list:
  2173.  
  2174. _NAME                                                 INTERNET EMAIL ADDRESS_
  2175. Anonymous contributor(s)                             <anonymous@secret.cia>
  2176. Lonnie R. Abelbeck                              <abelbeck@dev.abelbeck.com>
  2177. Ivan M Cavero Belaunde                              <ivanski@world.std.com>
  2178. Jim Browne                                          <jbrowne@ncsa.uiuc.edu>
  2179. Scott Bronson                                       <urge@mcl.mcl.ucsb.edu>
  2180. Mark Dawson                                                <marc@apple.com>
  2181. Lawrence D'Oliveiro                                     <ldo@waikato.ac.nz>
  2182. M. David Greenspon                            <gremicf@yalevm.ycc.yale.edu>
  2183. C.K. Haun                                                  <haun@apple.com>
  2184. Michael Hecht                                   <Michael_Hecht@mac.sas.com>
  2185. Robert Hess                                  <robert_hess@macweek.ziff.com>
  2186. Mark B. Johnson                                        <mjohnson@apple.com>
  2187. David B. Lamkins                                        <dblamkins@aol.com>
  2188. Roland Mansson                                   <roland.mansson@ldc.lu.se>
  2189. Matsubayashi Kohji                          <matubays@ics.es.osaka-u.ac.jp>
  2190. Duane Murphy, Novell Inc.                          <damurphy@wc.novell.com>
  2191. Mark Nagata                                   <nagata@kurims.kyoto-u.ac.jp>
  2192. Fabrizio Oddone                                       <simula3@di.unito.it>
  2193. Marco Piovanelli                              <piovanel@ghost.dsi.unimi.it>
  2194. Kees Pols                                                 <kpols@bio.vu.nl>
  2195. Francois Pottier                                   <pottier@clipper.ens.fr>
  2196. Quinn                                                 <quinn@cs.uwa.edu.au>
  2197. Dave Radcliff, Apple Computer Inc. Mac DTS             <radcliff@apple.com>
  2198. Pete Resnick                                      <resnick@cogsci.uiuc.edu>
  2199. Leonard Rosenthol                                     <leonardr@netcom.com>
  2200. Jeremy Roussak                                      <jeremyr@dcs.qmw.ac.uk>
  2201. J.D. Sterling Babcock                                    <jdsb@ee.duke.edu>
  2202. Victor Tan                                     <victort@extro.ucc.su.oz.au>
  2203. Rodrigo Torres, Berkeley Systems Mac Tech Support      <brklysystm@aol.com>
  2204. John Watte                                            <d88-jwa@nada.kth.se>
  2205. Chris Wysocki                                          <wysocki@netcom.com>
  2206.  
  2207. And the Computer Department at the Biology Faculty of the Free University
  2208. in Amsterdam, The Netherlands for their help and support. Also special
  2209. thanks to Marco Piovanelli for his support and comments about preliminary
  2210. versions and updates.
  2211.  
  2212. The persons mentioned above provided information used in this list. They
  2213. did this on personal title, NOT on behalf of their employer, unless
  2214. explicitly listed otherwise.
  2215. I assume information you mail to me about Gestalt selectors may be used in
  2216. this list. Information made available to the general public (e.g. a posting
  2217. to a USENET newsgroup) is also included and the persons name added to this
  2218. chapter (and to the distribution list).
  2219. I will mail you back to thank you and include the parts from the list which
  2220. were changed, according to the information you provided, to let you check
  2221. them.
  2222.  
  2223. Definitions and Format
  2224. ======================
  2225. This chapter explains where the word 'Gestalt' comes from, a few things
  2226. are defined and it explains how each selector code entry looks like.
  2227.  
  2228. Use in Language
  2229. ---------------
  2230. Webster's Dictionary (?):
  2231.   ge.stalt \g<e>-'s(h)t<a:>lt, -'s(h)t<o.>lt\ n, pl ge.stalt.en
  2232.   \-<\e>n\ or gestalts (1922)
  2233.   [G, lit., shape, form]
  2234.     :a structure, configuration, or pattern of physical, biological, or
  2235.     psychological phenomena so integrated as to constitute a functional
  2236.     unit with properties not derivable by summation of its parts.
  2237.   (Anders Wallgren)
  2238. German-Dutch dictionary:
  2239.   Gestalt w [-en]
  2240.     stature, figure, form; Ritter von der Traurigen -, knight of the
  2241.     sorrowful figure.
  2242.  
  2243. Definitions
  2244. -----------
  2245. Apple System Software
  2246. These are selectors installed by System Software from Apple Computer, Inc.
  2247. Inside Macintosh (part VI) says this about them:
  2248. "Apple reserves for its own use all four-character sequences consisting
  2249. solely of lowercase letters and non alphabetic ASCII characters".
  2250.  
  2251. Apple Additional Software
  2252. These are selectors installed by additional software from
  2253. Apple Computer, Inc. The same as with the system software selectors applies.
  2254.  
  2255. Third Parties Software
  2256. These are selectors installed by software from parties other than
  2257. Apple Computer, Inc.
  2258. Inside Macintosh (part VI) says about these:
  2259. "If you have registered a creator string with Apple, you are strongly
  2260. encouraged to use that sequence as your selector code".
  2261. This type of selectors is included in this list with the motto "If you
  2262. don't know they are there, you can't do anything with them".
  2263.  
  2264. Format Selector Entry
  2265. ---------------------
  2266. Format used to display information about each selector:
  2267.  
  2268. selector code (Software name & type [since version], by company/author)
  2269.     constant name (description, documentation) OR description
  2270.  
  2271.     CONST declaration; {remark} *ref.number to source
  2272.  
  2273.     NOTE and or WARNING:
  2274.  
  2275. Where the type is one of:
  2276. app  application (APPL)
  2277. cp   control panel (cdev)
  2278. ext  extension (INIT/appe/RDEV etc.)
  2279.  
  2280. Example:
  2281.  
  2282. COLA (Sugarwater ext [1.0] by John Sculley)
  2283.      gestaltSugarwaterVersion
  2284.      Returns version of Sugarwater as a 4-byte word.
  2285.  
  2286.      gestaltSugarwaterVersion= 'COLA'; *0
  2287.  
  2288.      WARNING: This example is fictitious.
  2289.      NOTE:
  2290.      Sugarwater? See the book 'West of Eden, The End of Innocence at
  2291.      Apple' by Frank Rose.
  2292.  
  2293. Most selectors are listed as four characters, if there are only two or
  2294. three characters displayed the remainder are spaces (or it's a typo!).
  2295. Diacritical characters are shown in the most logical normal character and
  2296. at the end of the entry a note is included about which key-combination to
  2297. press with normal International system and US keyboard layout to get the
  2298. required diacritical character and also its ASCII code.
  2299. If a selector code is installed by Apple software the entry also includes
  2300. if it is an addition, a replacement or not listed in IM VI.
  2301. When 'INF' is at the end of the first line it means it is an informational
  2302. selector, all others are environmental selectors.
  2303. The source reference number may also be used in other places than indicated
  2304. above. It then applies to other parts of the entry or to the whole entry.
  2305. A single question mark indicates an uncertainty regarding that information.
  2306. Three question marks indicate complete abcense of the information.
  2307. Some constant-names may not originate from official publications.
  2308.  
  2309. Format Version Numbers
  2310. ----------------------
  2311. BCD (Binary Coded Decimal)
  2312.      $0x0402 means 4.0.2.
  2313. INTEGER
  2314.      The decimal representation of the returned value is the version.
  2315. NumVersion
  2316.      The format of the LongInt response can be coerced into type NumVersion,
  2317.      which is the same format as used for the 'vers' resource type.
  2318.  
  2319.      type
  2320.       NumVersion = packed record
  2321.        case INTEGER of
  2322.         0: (majorRev: SignedByte;  {1st part of version number in BCD}
  2323.             minorRev: 0..9;        {2nd part is 1 nibble in BCD}
  2324.             bugFixRev: 0..9;       {3rd part is 1 nibble in BCD}
  2325.             stage: SignedByte;     {stage code: dev, alpha, beta, final}
  2326.             nonRelRev: SignedByte);{revision level of non-released version}
  2327.         1: (version: LONGINT);     {to use all 4 fields at one time}
  2328.        end;
  2329.  
  2330.      stage contains one of: $10 = development
  2331.                             $20 = alpha
  2332.                             $40 = beta
  2333.                             $80 = final
  2334.  
  2335.      The 'atkv' selector returns the majorRev release as hexadecimal.
  2336.  
  2337. Legal Stuff
  2338. ===========
  2339. (c) 1992-1993, Rene G.A. Ros
  2340.  
  2341. See other sections (below) for remarks regarding liability, trademarks and
  2342. distribution.
  2343.  
  2344. Notice of Liability
  2345. -------------------
  2346. The information in this list is distributed on an "AS IS" basis, without
  2347. warranty. While every precaution has been taken in the preparation of this
  2348. list, neither the editor nor any contributor shall have any liability to
  2349. any person or entity with respect to any liability, loss, or damage caused
  2350. or alleged to be caused directly or indirectly by the information contained
  2351. in this list or by the computer software and hardware products described
  2352. herein.
  2353.  
  2354. Trademarks
  2355. ----------
  2356. Throughout this list trademarked names are used. Rather than put a
  2357. trademark symbol in every occurrence of a trademarked name, I state I am
  2358. using the names only in an editorial fashion and to the benefit of the
  2359. trademark owner with no intention of infringement of the trademark.
  2360.  
  2361. Distribution
  2362. ------------
  2363. The information in this list may be used freely. When you use the
  2364. information in this list for COMMERCIAL purposes, you may consider sending
  2365. the editor a donation. You are not allowed to distribute this list outside
  2366. any computer network (especially printed, on disk or CD-ROM) unless you
  2367. have contacted the editor and received permission to do so. This is also to
  2368. ensure you have the latest version. The updates may not be distributed,
  2369. these are ONLY for the persons on the distribution list.
  2370.  
  2371. Permission for distribution is granted to:
  2372. Arizona Macintosh Users Group        (BBS in a BOX CD-ROM)
  2373. IDG Communications Nederland         (MacWorld CD-ROM)
  2374. METATEC Corporation                  (Nautilus CD-ROM)
  2375. Pacific HiTech, Inc.                 (Info-Mac CD-ROM)
  2376.  
  2377. You are not allowed to distribute modified versions of this list,
  2378. including, but not limited to, deleting, adding or moving text or adding
  2379. non-text parts. Distribution in any electronical format except a normal
  2380. (or compressed) text file is not allowed without permission.
  2381. You are not allowed to redistribute it with any other name than
  2382. 'gestalt-selectors-XX.YYY' (where XX is the version number and YYY the suffix
  2383. to indicate compression etc.) unless because of technical reasons. In such
  2384. case a name should be chosen which resambles it as closely as possible to
  2385. avoid confusion.
  2386.  
  2387. Editor's Address
  2388. ================
  2389. Rene G.A. Ros
  2390. student Computer Science, Institute of Technology
  2391.  
  2392. Del Court van Krimpenstraat 3
  2393. 1067 SG  Amsterdam - Geuzenveld
  2394. The Netherlands, Europe
  2395. Bank      : Postbank 4578223, Amsterdam
  2396.  
  2397. Phone#    : +31 20 611 92 74 / +31 20 611 87 00
  2398. Fax#      : +31 20 611 60 06
  2399. Internet  : rgaros@bio.vu.nl (preferred)
  2400.             rgaros@nikhefk.nikhef.nl
  2401.             rener@htsa.aha.nl
  2402. CompuServe: >INTERNET: rgaros@bio.vu.nl
  2403.             100112,1363
  2404.             
  2405. Mailing list:
  2406. Internet    contributions:
  2407.             gestalt-selectors-list@bio.vu.
  2408.  
  2409.             to subscribed/unsubscribe and for the archive server:
  2410.             gestalt-selectors-list-request@bio.vu.nl
  2411.  
  2412. CompuServe  contributions:
  2413.             >INTERNET: gestalt-selectors-list@bio.vu.
  2414.  
  2415.             to subscribed/unsubscribe and for the archive server:
  2416.             >INTERNET: gestalt-selectors-list-request@bio.vu.nl
  2417.  
  2418. Please contact me at the INTERNET address. I read my mail there almost
  2419. every day, while I log on to CompuServe only once or twice a month.
  2420. Perhaps in the future, when the contacts with CompuServe members become
  2421. more frequent, this may increase.
  2422.